ブックマークとしてマークされたImageView
の状態を変更することに問題があります。ImageView onClickListener()
人は私が持っている新しいOnClickListener()
を作成すると言いましたが、ImageViewをクリックするとフォーカスが当たった状態になりますが、クリックすると状態が変わりません。さらに、私がリスト項目をクリックすると、ImageView
に再び焦点が当てられていることがわかりました。次のように私はImageViewの状態のためのXMLを作成している
public class DxSimpleCursorAdapter extends SimpleCursorAdapter {
Context context;
Activity activity;
ImageView image;
public DxSimpleCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
this.context=context;
this.activity=(Activity) context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View view = super.getView(position, convertView, parent);
long id = getItemId(position);
final ImageView image = (ImageView) view.findViewById(R.id.fav);
image.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
image.setBackgroundResource(R.drawable.ic_fav);
final Button btn = (Button) v.findViewById(R.id.fav);
btn.setPressed(true);
}
});
return view;
}
}
を::
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_star_off_normal"
android:state_checked="false"
android:state_window_focused="false" />
<item android:drawable="@drawable/btn_star_on_normal"
android:state_checked="true"
android:state_window_focused="false" />
<item android:drawable="@drawable/btn_star_on_pressed"
android:state_checked="true"
android:state_pressed="true" />
<item android:drawable="@drawable/btn_star_off_pressed"
android:state_checked="false"
android:state_pressed="true" />
<item android:drawable="@drawable/btn_star_on_focused"
android:state_checked="true"
android:state_focused="true" />
<item android:drawable="@drawable/btn_star_off_focused"
android:state_checked="false"
android:state_focused="true" />
<item android:state_checked="false" android:drawable="@drawable/btn_star_off_normal" />
<item android:state_checked="true" android:drawable="@drawable/btn_star_on_normal" />
</selector>
私の活動の中で、私はどのトーストメッセージを作成するには、以下のOnListItemClick()
を作成している私は、私が行方不明ですかわからないですポップアップだけでなく、ImageView
に焦点を当てているようだ。
public void onListItemClick(ListView parent, View view, int position, long id) {
SQLiteDatabase db = (new DatabaseHelper(this)).getWritableDatabase();
Cursor c = (Cursor) getListAdapter().getItem(position);
String arg = c.getString(c.getColumnIndex("_id"));
Cursor cursor = db.rawQuery("Select category, subcategory From DiagLookup Where _id = ?", new String[]{""+arg});
cursor.moveToFirst();
Context context = getApplicationContext();
CharSequence text = "Category: " + cursor.getString(cursor.getColumnIndex("category")) + "\nSubcategory: " + cursor.getString(cursor.getColumnIndex("subcategory"));
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
私は起こるしたいものを明確に:
私は二つのことをしたいリスト項目があります。アイテムをクリックしてトーストメッセージを受け取り、イメージビューをクリックし、イメージビュー内のブックマークされた状態に、またバックエンドにも切り替えることができます。私はトーストメッセージが作業が、ImageViewのは完全に機能していない持っている瞬間
...
私がクリックしたとき、私はそれがセットアップでどのように表示し、発生しているかを説明するために、リスト項目のスクリーンショットを添付していますさまざまな分野で
トップリスト項目はをクリックして開催されている上記の私の引き出し可能なXMLに示したように、私が取得することは集束が、unclicked画像への画像の変更ですが、私は星が暗くクリックを終了するとき他の項目はグレーであるが、黄色の星であるクリック状態の画像には変わらない。
私はスター以外の場所をクリックすると、私が出そうとしていたトーストメッセージがポップアップしますが、スターも焦点を合わせるようになります。私はいくつかの継承の問題を抱えているように感じているし、ImageViewのために状態を固執させないように感じる。
この投稿とそれらの中で言及されたリンクは、XMLビューを使用して状態を変更するためにイメージビューを取得するのに非常に役立ちました。私がそれを固定したのは、アンドロイドを使用するのではなく、drawable xml内でstate_checkedをアンドロイド:state_selectedに置き換えてからview.setSelected(true)に置き換えることでした。 onClick()イベント内で実行されます。 – DeucePie