2016-08-24 19 views
0

onItemClickListnerを使用して配列の位置を取得しようとしています。次のコードでonItemClickListenerを使用した配列位置

、私はアイテムのテキストを渡すことができる午前配列例えば0、1の位置をクリックではなく、2等の

 String[] menuItems = new String[]{"Hello", "Is it me", "Youre", "Looking for"}; 

    ListAdapter adapter = new ArrayAdapter<String>(this, R.layout.menulists, R.id.menulistsTextView1, menuItems); 
    ListView listView = (ListView) findViewById(R.id.mainListView1); 
    listView.setAdapter(adapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> l, View v, int position, long id) { 

      String selected = (String) l.getItemAtPosition(position); 


     } 

それが可能かどうか上の任意のヒントこれを行うには、Stringをintに変更してgetItemIDAtPosition関数を使用しようとしましたが、うまくいかず、アプリケーションを閉じるだけでした。項目の文字列の文がクリックされた場合、私はちょうど私が使用して何をしたい達成するために異なるアプローチをとっている

乾杯

EDIT

。あなたがメソッドシグネチャから位置を取得することができ、入力

+0

このように、ユーザーがクリックした配列の位置を取得したいですか? – HourGlass

+0

「クリックしたアイテムのテキストを渡すことができます」。あなたは何も渡していません。その位置のテキストを決定するだけです。配列の位置はもちろん、アイテムクリックハンドラの 'int position'と同じです。 – greenapps

答えて

3

のためにありがとう:

public void onItemClick(AdapterView<?> l, View v, int position, long id) 

位置がはあなたの選択した項目のインデックスを与えます。

+0

お返事ありがとうございます。 次のコードを使用して配列内の位置を0よりもむしろStringなどの文字列を出力しているという問題があります。 String =(String)adapter.getItem(position); textView.setText(selected); –

0

あなたはこの試みることがあります。私はあなたの問題を理解したよう

​​
0

を - あなたがクリックした位置にアイテムを取得したいです。これを行うにはgetItem(position)アダプターのメソッドを使用してください。コード:

String[] menuItems = new String[]{"Hello", "Is it me", "Youre", "Looking for"}; 

    //VERY IMPORTANT 
    //adapter must be declared final to use it in onItemClick 
    //or adapter should be object parameter 
    final ListAdapter adapter = new ArrayAdapter<String>(this, R.layout.menulists, R.id.menulistsTextView1, menuItems); 

    ListView listView = (ListView) findViewById(R.id.mainListView1); 
    listView.setAdapter(adapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

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

     String selected = <String>adapter.getItem(position); 


    } 

    }); 
関連する問題