これは私のコードです。私はトピック名、トピックコード、トピック結果をarraylistに入れました。問題は、例えば私はA(位置0)、B(位置1)、C(位置2)を持っていることです。私はBを検索し、それをクリックすると、アプリはA.検索のリストビューとonclickはフィルタの後にクリックすると正しい位置を取得しません
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_c);
ctopics = (ListView) findViewById(R.id.clistView);
csearch = (EditText) findViewById(R.id.CSearch);
ctitle = new ArrayList<Ctitle>();
ctopics.setAdapter(cAdapter);
ctitle.add(new Ctitle("Swap Two Numbers",
"#include <iostream>\nusing namespace std;\nint main(){\nint a = 5, b = 10, temp;\ncout << ''Before swapping.'' << endl;\ncout << ''a = '' << a << '', b = '' << b << endl;\n\ntemp = a;\na = b;\nb = temp;\n\ncout << ''\nAfter swapping.'' << endl;\ncout << ''a = '' << a << '', b = '' << b << endl;\n\nreturn 0;\n}",
"Before swapping.\na = 5, b = 10\n\nAfter swapping.\na = 10, b = 5"));
ctitle.add(new Ctitle("While Loop",
"#include <iostream>\nusing namespace std;\nint main(){\nint a = 10;\nwhile(a < 15){\ncout << ''value of a: '' << a << endl;\na++;\n}\nreturn 0;\n",
"value of a: 10\nvalue of a: 11\nvalue of a: 12\nvalue of a: 13\nvalue of a: 14"));
ArrayList<String> names = new ArrayList<String>();
for (int i=0; i<ctitle.size(); i++)
{
names.add(ctitle.get(i).getTopic());
}
cAdapter = new ArrayAdapter<String>(CActivity.this, android.R.layout.simple_list_item_1, names);
ctopics.setAdapter(cAdapter);
ctopics.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Intent intent = new Intent(CActivity.this, Cdisplay.class);
intent.putExtra("info", ctitle.get(position));
startActivityForResult(intent, 0);
}
});
ためである位置0に移動しますすべてのヘルプははるかに高く評価されるだろう、ありがとうございました!
編集:
パブリッククラスCtitleは直列化を{
/**
*
*/
private static final long serialVersionUID = 1L;
private String topic,code,result;
public Ctitle(String topic,String code,String result)
{
super();
this.topic=topic;
this.code=code;
this.result=result;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
代わり 'ctitle.get(位置)の' cAdapter.getItem(位置)を ''試し実装します。 – Titus
Imに「ArrayList型のメソッドgetItem(int)が未定義です」 – James
「ArrayList」ではなく「ArrayAdapter」のメソッドを呼び出します。例: 'cAdapter.getItem(position)' – Titus