2011-10-20 5 views
4

クリックに反応するビュービューのビューのすべてのプロパティを設定しようとしています(単純なプレス、長いクリックなど)。親ビューと子ビューの両方の.setFocusable、.setFocusableInTouchMode、.setLongClickable、.setClickable、.setPressed、.setSelected、.setHapticFeedbackEnabled属性をfalseに設定しようとしましたが、それは役に立ちませんでした。android:ビューのすべてのクリックを無効にする方法

私は、ボタンをクリックするとリストビューの2つの状態を切り替える予定です。 2番目の状態に切り替えると、その行のすべてのクリックが無効になります。私は別のカスタムcursoradaptersでlistviewの各状態を設定しています。次のコードスニペットは、2番目の状態の2番目のカーソルアダーからのものです。

@Override 
public void bindView(View view, Context context, Cursor cursor) { 
    RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.title_rows_relativelayout); 
    TextView lists_text = (TextView) view.findViewById(R.id.list_title_text); 
    lists_text.setText(cursor.getString(cursor.getColumnIndex(ListsDbAdapter.TITLE))); 
    lists_text.setBackgroundResource(R.drawable.background_for_rows); 
    parent.setBackgroundResource(R.drawable.background_for_rows); 

    view.setFocusable(false); 
    view.setFocusableInTouchMode(false); 
    view.setHapticFeedbackEnabled(false); 
    view.setLongClickable(false); 
    view.setClickable(false); 
    view.setPressed(false); 
    view.setSelected(false); 

    parent.setFocusable(false); 
    parent.setFocusableInTouchMode(false); 
    parent.setHapticFeedbackEnabled(false); 
    parent.setLongClickable(false); 
    parent.setClickable(false); 
    parent.setPressed(false); 
    parent.setSelected(false); 

    lists_text.setFocusable(false); 
    lists_text.setFocusableInTouchMode(false); 
    lists_text.setHapticFeedbackEnabled(false); 
    lists_text.setLongClickable(false); 
    lists_text.setClickable(false); 
    lists_text.setPressed(false); 
    lists_text.setSelected(false); 
} 

ありがとうございます。

+0

あなたが試したことを示すコードサンプルを投稿できますか? –

+0

私はちょうど追加しました。申し訳ありませんが、プログラミングに別のコンピュータを使用し、インターネットにアクセスするために別のコンピュータを使用するため、コードを追加するのに時間がかかります。 –

答えて

1

正しく理解していれば、2つのアダプターは必要ありません。あなただけのものを使用し、そのように、すべてを無効にビューに追加し、onClickListenerすることができます

view.setOnClickListener(new View.onClickListener(){ 
    public void onClick(View view){ 
    //do all your code for disabling stuff in here 
    } 
}); 

はおそらく、これをやって、あなたを助けるアダプタを切り替えることがありません。

+0

しかし、私はビューの他のプロパティ(背景やテキストのような)を変更しようとすると動作します。 xmlコードで設定してもクリックを無効にすることはできません。私のEclipseで何かが間違っていると思われますか?私はそれを考え始めたからです。 –

+0

私は別のボタンを使って2つの状態を切り替える。メインビューの一番下にあります。行内にはありません。私はこれがなぜ2つのcursoradaptersを使用しなければならなかったのかと思う。 –

+0

ああ、意味がある。この答えを無視してください。そして私は問題が日食であることを疑う。 –

7

私は同様の問題がありました。

setEnabled(false) 

..私の仕事。