ListViewを使用してmysqlテーブルのデータを表示し、SimpleAdapterが入力されています。onItemClickListenerを追加して、ユーザーがリスト上のアイテムを押したときに新しいアクティビティを開くことができるようにしました。これは非常にうまく機能していますが、リストを検索するオプションを選択すると、textfilterはエントリを正常にフィルタリングしますが、onItemClickは新しいアクティビティに正しい「id」を送信しません。私は解決策を探しましたが、誰もが「adapter.notifyDataSetChanged」で問題を解決しましたが、うまくいきませんでした。ここにコードがあります、多分誰かが助けることができます。
list.setTextFilterEnabled(true);
myFilter.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start,int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
mSchedule.getFilter().filter(s.toString());
}
});
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
try {
String ajdi = jArray.getJSONObject(position).getString("id").toString();
Intent i = new Intent(Predlozi.this, PesmaPrikaz.class);
Bundle bandl = new Bundle();
bandl.putString("id", ajdi);
i.putExtras(bandl);
startActivity(i);
} catch (JSONException e) {
;
}
}
});