2016-05-14 7 views
-1

私は15項目の長さのリスト(カスタムビュー付き)を持っていて、私が望むリスト項目のtextview値を取得したいと思います。リストビューからtextview値を取得するにはどうすればよいですか?

+0

を、彼らは普通の 'TextView'sをしている場合 - すなわち、編集できません - あなたはすでにテキスト値を知らないでしょうか? –

+0

これらは、カスタムビューの他の変数の中では信頼できるものではありません。入力された数値の平均値です。 –

+0

今、リストビューからボタンを押したときに、押したときに私が選択した位置に応じてテキスト値を取得します。 –

答えて

0

このコードは、長いクリックで特定のアクションを作るためにあなたのListViewに追加することができます。

list.setOnItemLongClickListener(new OnItemLongClickListener() { 

       @Override 
       public boolean onItemLongClick(AdapterView<?> parent, View list,int pos, long id) { 
         // TODO Auto-generated method stub 

         CustomView view = (CustomView) list ; 
        //put in your customview some methods to get and set each item within it for example getTextViewText to get the text from the TextView item 
        } 


       }); 
0

あなたonItemClickコールバックは、あなたがちょうどこれをキャストView view持って、ここでは、この

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

を好きになるでしょうレイアウトを使用して表示し、TextViewを取得します。次に例を示します。

if (view != null) { 
     TextView txtView = view.findViewById(R.id.mytextview); 
     String value=txtView.getText().toString(); 
    } 

編集:

public View getViewByPosition(int pos, ListView listView) { 
    final int firstListItemPosition = listView.getFirstVisiblePosition(); 
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1; 

    if (pos < firstListItemPosition || pos > lastListItemPosition) { 
     return listView.getAdapter().getView(pos, null, listView); 
    } else { 
     final int childIndex = pos - firstListItemPosition; 
     return listView.getChildAt(childIndex); 
    } 
} 

ただ、この方法はあなたにViewオブジェクトを返します。このよう

getViewByPosition(2,YOUR_LIST_VIEW); 

を使用して、ボタンのonClick()メソッドでこのメソッドを呼び出しますあなたのListViewの特定の位置。これで以前の方法でキャストすることができます。

希望、これはあなたを助ける:)

+0

はい、私は必要ありません。私はボタンを持っています。そのボタンは、例えば、位置2のリスト項目のテキスト値を与えます。 –

+0

@Milos Cukic私の答えを編集しました。これをチェックしてください –

関連する問題