0

textViewsの行を作成し、クリックされたときにテキストを返すようにOnClickListenerを作成したいと思います。私はこのようなものを持っています:

for (int i = 0; i < json.length(); i++) {
    tv1.setText("Some text");

    public boolean onLongClick(View v) {
        //something should go here
    }

    tableLayout.addView(tv1);
}

onLongClickを実行すると、最後に追加したものではなく、選択しているtextViewへの参照を取得するにはどうすればよいですか?静的ではないため、onLongClick内でtv1を呼び出すことはできません。

4

2 に答える 2

0

にリスナーを設定し、コールバックTextViewのパラメーターを使用します。onClick

for (int i = 0; i < json.length(); i++) {
    tv1.setText("Some text");
    tv1.setOnClickListener(new OnClickListener() {

         @Override
         public void onClick(View v) {
              // v is the TextView that was clicked
              String theText =  ((TextView)v).getText().toString();
         }

    });
//...
于 2012-12-09T08:34:26.843 に答える
0

テクニックがあります。私があなたの問題を正しく理解していれば、すべての動的TextViewをArrayList内に置くことができます。以下のように

ArrayList<TextView> listTextView = new ArrayList<TextView>();

for (int=0; i<json.length; i++) {
     TextView textView = new TextView(this);
     textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
     textView.setText("Some Text");
     textView.setOnClickListener(new OnClickListener() {

         @Override
         public void onClick(View v) {
           TextView text = (TextView) v;
           String theText = text.getText().toString();
         }

    });
    listTextView.add(textView);
}
于 2012-12-09T08:38:55.687 に答える