0

現在、ProjectPreview と ImageAdapter という名前の 2 つのクラスがあります。

Projectpreview には、アクションバーと共にビューがあります。

imageview 内の現在の画像の ID を取得して、アクション バーで削除する方法がわかりません。

プロジェクトプレビューでの作成:

    Gallery gallery = (Gallery) findViewById(R.id.gallery);
    gallery.setAdapter(new ImageAdapter(this));

    gallery.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View v, int position, long id) {
            ImageAdapter ia1 = new ImageAdapter();
            ia1.showLarger(position); }

projectpreview のコードを削除します。

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_delete:
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

ImageAdapter クラス:

     public Integer[] mImageIds = {
            R.drawable.sample_1,
            R.drawable.sample_2,
            R.drawable.sample_3,
            R.drawable.sample_4,
            R.drawable.sample_5,
            R.drawable.sample_6,
            R.drawable.sample_7
    };

    public void showLarger(int position){
        ImageView image = (ImageView) findViewById(R.id.iv1);
        image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        image.setImageResource(mImageIds[position]);
    }

image.setImageResource(mImageIds[position]); を取得する方法を見つける必要があります。mImageIds[position] 別名写真を削除できるように、他のクラスに。

4

1 に答える 1

0

これを行うには、ImageView でsetTag関数を使用できます。タグは、画像リソースに使用される ID など、任意のタイプのオブジェクトにすることができます。それを削除したい場合は、setTag で設定したオブジェクトを返す imageView.getTag() を使用できます。メニュー項目をクリックすると、削除コードが実行されているようです。そこに ImageView への参照が表示されないため、ビューへの参照を取得するには findViewById を実行する必要があります。

ID を設定します。

public void showLarger(int position){
    ImageView image = (ImageView) findViewById(R.id.iv1);
    image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
    image.setImageResource(mImageIds[position]);
    image.setTag(mImageIds[position]);
}

ID を取得します。

    ImageView image = (ImageView) findViewById(R.id.iv1);
    int id = (Integer)image.getTag();
于 2012-04-18T14:52:24.190 に答える