0
Hallo Ich brauche Hilfe, um meine Liste nach meinen Schlüsselwörtern zu filtern. Hier ist der Code, den ich dafür geschrieben habe, aber es funktioniert nicht. Bitte helfen Sie mir, dieses Problem zu lösen.Brauchen Sie Hilfe, um Listendaten nach meinem Suchbegriff zu filtern
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
/**
* Created by jignesh on 28-07-2016.
*/
public class stock_product extends AppCompatActivity {
String type;
private static final String LOGIN_URL = "http://www.hetinfosolution.com/AdMobileApp/stock_full_list.php";
String myJSON;
private static final String TAG_ID="id";
private static final String TAG_NAME="name";
private static final String PTAG_NAME="stock_name";
private static final String TAG_RESULT="result";
private static final String SIZE_METER="size_meter";
private static final String SIZE_SQARE_FEET="size_square_feet";
private static final String EXP_QTY="expected_qty";
private static final String EXP_DATE="expected_date";
JSONArray STOCK_LIST = null;
String [] items;
ArrayList<HashMap<String, String>> personList;
ListView list;
EditText editText;
ArrayList<String> listItems;
// List view
private ListView lv;
// Listview Adapter
ArrayAdapter<String> adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_stock);
Intent i = getIntent();
type = i.getStringExtra("type");
TextView heading = (TextView) findViewById(R.id.textView);
heading.setText(type);
list = (ListView)findViewById(R.id.StockType);
editText = (EditText)findViewById(R.id.txtSearch);
personList = new ArrayList<HashMap<String,String>>();
//// LoadData for fill listview data
LodaData();
/// here is method for search
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.toString().equals("")){
//Reset ListView
LodaData();
}else{
/// SearchItem method created for search string and populate listview after search
SearchItem(s.toString());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
public void SearchItem(String item){
// here write code for search
}
}
public void LodaData() {
class stock extends AsyncTask<String, Void, String> {
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(stock_product.this, "Please Wait...", null, true, true);
}
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
myJSON=s;
listView();
}
@Override
protected String doInBackground(String... params) {
HashMap<String, String> data = new HashMap<>();
data.put("username", type);
RegisterUserClass ruc = new RegisterUserClass();
String result = ruc.sendPostRequest(LOGIN_URL, data);
return result;
}
}
stock ulc = new stock();
ulc.execute(type);
}
private void listView() {
try {
// JSONObject jsonObject = new JSONObject(myJSON);
JSONObject jsonObject = new JSONObject(myJSON);
// jsonObject = new JSONObject(myJSON);
STOCK_LIST = jsonObject.getJSONArray(TAG_RESULT);
for(int i=0; i<STOCK_LIST.length(); i++){
JSONObject c = STOCK_LIST.getJSONObject(i);
String name = c.getString(PTAG_NAME);
String size_meter = c.getString(SIZE_METER);
String size_square_feet = c.getString(SIZE_SQARE_FEET);
String expected_date = c.getString(EXP_DATE);
String expected_qty = c.getString(EXP_QTY);
HashMap<String,String> STOCK = new HashMap<String, String>();
STOCK.put(PTAG_NAME,name);
STOCK.put(SIZE_METER,size_meter);
STOCK.put(SIZE_SQARE_FEET,size_square_feet);
STOCK.put(EXP_DATE,expected_date);
STOCK.put(EXP_QTY,expected_qty);
personList.add(STOCK);
}
ListAdapter adapter = new SimpleAdapter(
stock_product.this,personList,R.layout.list_stock,
new String[]{PTAG_NAME,SIZE_METER,SIZE_SQARE_FEET,EXP_DATE,EXP_QTY},
new int[]{R.id.name,R.id.size_meter,R.id.size_square_feet,R.id.expected_date,R.id.expected_qty}
);
list.setAdapter(adapter);
listItems = new ArrayList(Arrays.asList(personList));
list.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//String value = (String)list.getItemAtPosition((int)id);
TextView c = (TextView)view.findViewById(R.id.name);
String value = c.getText().toString();
TextView sizeMeter = (TextView)view.findViewById(R.id.size_meter);
String valuesizeMeter = sizeMeter.getText().toString();
TextView size_square_feet = (TextView)view.findViewById(R.id.size_square_feet);
String valuesize_square_feet = size_square_feet.getText().toString();
TextView expected_qty = (TextView)view.findViewById(R.id.expected_qty);
String valueexpected_qtyet = expected_qty.getText().toString();
TextView expected_date = (TextView)view.findViewById(R.id.expected_date);
String valueexpected_date = expected_date.getText().toString();
double SUM;
if(type=="Sonatine Blinds"){
SUM = Float.parseFloat(valuesizeMeter)*Float.parseFloat(valuesize_square_feet)*10.76/2;
}else if(type=="Vertical Blinds"){
SUM = Float.parseFloat(valuesizeMeter);
}else{
SUM= Float.parseFloat(valuesizeMeter)*Float.parseFloat(valuesize_square_feet)*10.76;
}
AlertDialog.Builder a_builder = new AlertDialog.Builder(stock_product.this);
a_builder.setMessage("PRODUCT NAME : "+value+"\n"+
"QUANTITY IN SQF : "+SUM+"\n"+
"QUANTITY IN METER : "+valuesizeMeter+"\n"+
"EXPECTED DATE OF ARRIVAL : "+valueexpected_date+"\n"+
"QUANTITY IN TRANSIT (In Mtr): "+valueexpected_qtyet)
.setCancelable(true)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = a_builder.create();
alert.setTitle("PRODUCT STOCK DETAIL ");
alert.show();
}
}
);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Bitte nennen Sie es nicht "Android-Skript". Es ist kein Skript. Ihre Frage ist hier schon beantwortet - http://stackoverflow.com/questions/14663725/list-view-filter-android – Divers
'if (type ==" Sonatine Blinds ") {' -> http://stackoverflow.com/ Fragen/513832/how-do-i-Vergleichen-Strings-in-Java –