簡単なはずですが、どこに問題があるのかわかりません。私は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()
メソッドには入りません。私は何が欠けていますか?
ありがとう
これを削除できます:
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);
super.onCreate(savedInstanceState);
setContentView(R.layout.other_activity);
findViewById(R.id.TextView).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
この構造を持つようにコードを変更すると、動作します:
public void runNextTask(){
...
}
public void onClick(View v) {
}
テキストビューのクリックをキャプチャするようXMLで指示しているように(Android:onClick="onClick"
)onClick
モジュールでは、JavaコードにonClickリスナーを追加する必要はありません。
すべてのビューコンポーネントに対して、TextViewの場合と同様にsetOnclickLister()を呼び出すことができます
textview.setOnclickListener(new setOnclickListener
{
public void onclick()
{
}
}
);``