1

Android に GridView があり、BaseAdapter クラスのオーバーライドされたメソッド getView 内で作成された TextView を使用しています。最初は作成した TextView の onClick メソッドは実装されていませんが、押された感覚を実行します。しかし、TextView の onClick を実装すると、onClick アクションは実行されますが、押された感覚はなくなります。

メソッド onClick が実装されていても、押された TextView の感覚を働かせる方法はありますか?

ありがとう

こんにちは人々を更新しています。 return false は機能しませんでした。コンパイルエラーが表示されます。私がやろうとしているのは、次のようなものです: BaseAdapter の内部に GridView を設定する

public View getView(int position, View convertView, ViewGroup parent) {
    TextView v;
    if(convertView == null){
      v = new TextView();
    }else{ 
        v = (TextView) convertView;
    }
}

この時点で、TextView にフォーカスを当てることができ、クリックされたビューの感覚が得られます。しかし、そのように onClickListener を実装すると、アクションを実行できますが、ビューが押された (またはフォーカスされた) 感覚はなくなります。

 view.setOnClickListener(new View.OnClickListener() {
        @Override
           public void onClick(View v) {
              deleteHour(mapDays.get(day));
           }
        });

GridView に onClick イベントがあり、TextView に別のイベントがあることがわかります。TextView で onClick メソッドを実装すると、GridView で onClick が無効になると思います。

おそらく問題は、クリックされたときに TextView の状態を変更して TextView をクリック可能にする方法ですか? 何かアイデアはありますか?

返信ありがとうございます。

4

1 に答える 1

4

やったよ!

私が見つけた方法は、GridView の setOnItemClickListener を次のようにオーバーライドすることです。

gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
}

これが同じ問題を抱えている人に役立つことを願っています!

ありがとう!

于 2011-04-07T02:08:47.083 に答える