0

こんにちは、私はスタックオーバーフローが初めてで、Android開発についても..

ここに私の問題があります:私はjsoncallからの結果を持っています. -object.name-s を含むアクティビティにリストビューを表示したい。listitemをクリックすると、選択したアイテムの-object.id-(位置ではなく、その中のオブジェクトではなく、mysqlに保存され、jsoncallで持っているobject-id)が意図的に別のアイテムに送信されますこれにより、すべてのオブジェクトの詳細が表示されます。オブジェクト全体を送信することもできます。この方法では、2 番目のアクティビティで json を呼び出して詳細を取得する必要はありません (おそらく)。

これは私が欲しいものです。カスタムクラスなしですべてをやろうとしましたが、失敗しました。そのため、Event というクラスを使用していくつかのテストも行いました。これは: ArrayList event_name=new ArrayList();

try{

jArray = new JSONArray(result);
JSONObject json_data=null;
Event event;

for(int i=0;i<jArray.length();i++){

    json_data = jArray.getJSONObject(i);
    event = new Event (json_data.getInt("IDEvent"), json_data.getString("NameEvent"));      

    event_name.add(event.getName());

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.textViewList, event_name);
    listView.setAdapter(arrayAdapter);

    listView.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView <?> parent, View view, int position, long id){  ....problem is here.... }
            }//end for loop

このソリューションでは、リストビューが機能し、オブジェクト名が正しく表示されます。しかし、私はonClickイベントを行う方法を見つけることができません..

Event eventOut = (Event) parent.getAdapter().getItem(position);

これと getID を使用すると、オブジェクト全体を渡そうとすると、アプリがクラッシュします。getName() と getID() は Event クラスに実装されています。

        private int getID(){    return IDEvent; }
    private String getName(){   return NameEvent;   }

誰かが私を助けることができればお願いします!!!

4

1 に答える 1

0

これを試して

listView.setOnItemClickListener(new OnItemClickListener(){
        public void onItemClick(AdapterView <?> parent, View view, int position, long id){  
Event eventOut =event_name.getItem(position);
}
            }//
于 2013-10-12T12:09:12.083 に答える