17

簡単なはずですが、どこが間違っているのかわかりません。私はクリックをキャッチしようとします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) {

        }
    });
}

の XMLTextViewは次のとおりです。

<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()私は何が欠けていますか?

ありがとう

4

7 に答える 7

40

これを削除できます:

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);
于 2013-07-13T13:42:05.087 に答える
1

この構造を持つようにコードを変更すると、機能します。

public void runNextTask(){
   ...
}

public void onClick(View v) {

}

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

于 2013-07-13T13:44:40.603 に答える
1

変化 :

 TextView modelTextview = (TextView)addView.findViewById(R.id.modelEdit);

 TextView modelTextview = (TextView)addView.findViewById(R.id.model);

android:onClick="onClick"Javaコードでこれを行う場合、xmlコードには必要ありません

于 2013-07-13T13:44:07.633 に答える
0

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

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


                                                    }
                           }
                            );``
于 2018-04-18T05:17:45.193 に答える