web-dev-qa-db-ja.com

Android-TextViewのsetOnClickListener

簡単なはずですが、どこに問題があるのか​​わかりません。私はTextViewのクリックをキャッチしようとしています:

_public void runNextTask(){
    final View addView = getLayoutInflater().inflate(R.layout.addnewtracker, null);
    final TrackerInfo newInfo = new TrackerInfo();
    //set up for model selection
    TextView modelTextview = (TextView)addView.findViewById(R.id.modelEdit)

    modelTextview.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
}
_

TextViewのXMLは次のとおりです。

_<TextView
    Android:id="@+id/model"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="@string/Tracker_model" 
    Android:clickable="true"
    Android:onClick="onClick"/>
_

しかし、TextViewをクリックしても、onClick()メソッドには入りません。私は何が欠けていますか?

ありがとう

13
batuman

これを削除できます:

Android:onClick="onClick"

または、これを削除します:

modelTextview.setOnClickListener(new OnClickListener() {
    @Override
     public void onClick(View v) {

     }
});

そしてこれを持っています:

public void onClick(View v)
{
    // do something
}  

Android:onClick="onClick"/> //混乱を避けるためにメソッドの名前を変更する方が良い

また、あなたはこれを持っています:

<TextView
     Android:id="@+id/model" // id is model

以下のようにTextViewを初期化します。

TextView modelTextview = (TextView)addView.findViewById(R.id.model);
33
Raghunandan
 super.onCreate(savedInstanceState);
 setContentView(R.layout.other_activity);
 findViewById(R.id.TextView).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});
2
Ravikiran D

この構造を持つようにコードを変更すると、動作します:

public void runNextTask(){
   ...
}

public void onClick(View v) {

}

テキストビューのクリックをキャプチャするようXMLで指示しているように(Android:onClick="onClick"onClickモジュールでは、JavaコードにonClickリスナーを追加する必要はありません。

1
maclir

すべてのビューコンポーネントに対して、TextViewの場合と同様にsetOnclickLister()を呼び出すことができます

textview.setOnclickListener(new setOnclickListener
                           {
                                public void onclick()
                                                   {


                                                    }
                           }
                            );``
0
dileep krishnan