2016-12-05 18 views
0

ListViewからオブジェクトを取得したいと思います。私はcsvファイルから私のデータを入れました。アンドロイドのリストビューからオブジェクトを取得

私は2つの列と100の行を持っています。最初の列はName、2番目はnumberです。 行をクリックした後に番号を取得します。

だから私はonCreateを持っている:

listView.setClickable(true); 
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Button btn2 = (Button) findViewById(R.id.button3); 
     btn2.setEnabled(true); 
     Object listItem = listView.getItemAtPosition(position); 
     String item = (listView.getItemAtPosition(position).toString()); 
     btn2.setText(item); 

    } 
}); 

を、その後、私は行(第1、第2の列=同じスコア)をクリックしたとき、私のButtonテキストは[LJAVA.LANG.STRING;@42791450を示し、すべての行は、他の番号を持っています。

EDIT:

listView = (ListView) findViewById(R.id.list_view2); 
    itemArrayAdapter = new ItemArrayAdapter(getApplicationContext(), R.layout.single_list_item); 

    Parcelable state = listView.onSaveInstanceState(); 
    listView.setAdapter(itemArrayAdapter); 
    listView.onRestoreInstanceState(state); 

    InputStream inputStream = getResources().openRawResource(R.raw.manager_number); 
    CSVReader csv = new CSVReader(inputStream); 
    List<String[]> scoreList = csv.read(); 


    for (String[] scoreData : scoreList) { 
     itemArrayAdapter.add(scoreData); 

    } 
+0

オブジェクトの識別子ではなく、オブジェクトの対応する番号が表示されています。 Objectとそれに対応するセッターとゲッターを実装し、必要な値を取得する必要があります。例:btn2.setText(listView.getItemAtPosition(position).getNumber()); – Ricardo

+0

アダプタ初期化コードを表示します。 –

答えて

0

あなたItemArrayAdapterからオブジェクトを取得する方法を持っている場合は、たとえばitemArrayAdapter.get(index)のために、あなたは、インスタンスの属性としてそれを宣言する可能性があり、指標としての位置を使用しています。同様に:

public class myActivity extends Activity { 

    private ItemArrayAdapter itemArrayAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

    this.itemArrayAdapter = new ItemArrayAdapter(getApplicationContext(), R.layout.single_list_item); 

    InputStream inputStream = getResources().openRawResource(R.raw.manager_number); 
    CSVReader csv = new CSVReader(inputStream); 
    List<String[]> scoreList = csv.read(); 

    for (String[] scoreData : scoreList) { 
     itemArrayAdapter.add(scoreData); 
    }  

    ListView listView = (ListView) findViewById(R.id.list_view2); 
    listView.setClickable(true); 
    Parcelable state = listView.onSaveInstanceState(); 
    listView.setAdapter(itemArrayAdapter); 
    listView.onRestoreInstanceState(state); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     Button btn2 = (Button) findViewById(R.id.button3); 
     btn2.setEnabled(true); 
     String item = this.itemArrayAdapter.get(position);; 
     btn2.setText(item); 

    } 
    }); 
関連する問題