2

どの画像がどのセルにあるかを知る必要があるため、 と のみを使用してみ.setId()まし.getId()た。しかし、これを行う他の方法がある場合は、お知らせください。

ボタンをクリックすると画像が追加されます。それらがどこに表示されるかを示すものは何もありませんが、これが私の問題です。追加できる各画像に Id を追加しようとしています。Idしたがって、それらを GridView にドロップし、そのうちの 1 つをクリックすると、 が正しいものであれば、 if (Id == 1) open... else if (id == 2) open other thing. しかしId、画像に保存する(または保存するImageCell)ことができません。

私が得ている問題の例: Id1 を持つ image1 を追加し、Id2 を持つ image2 を追加すると、image1 Id は最後に追加されたイメージ (この場合は image2 Id) に変更されます。Id を設定するさまざまな方法を試しましたが、最初にドロップされた画像の最後の画像 ID を取得しています。

トーストを使用して、ドロップされた画像 ID を表示しています。これは ImageCell コードです。

public void onDrop(DragSource source, int x, int y, int xOffset, int yOffset,
    DragView dragView, Object dragInfo)
{
mEmpty = false;

ImageView sourceView = (ImageView) source;
sourceView.setId(DragActivity.m);
Drawable d = sourceView.getDrawable ();
this.setId(sourceView.getId());
if (d != null) {
   this.setImageDrawable (d);
   this.setId(sourceView.getId());
   prueba = this.getId();
}
toast ("" + prueba);
}

DragActivity.m は、画像を変更するために使用される単なる変数です。

public void addNewImageToScreen() {
    int resourceId = R.drawable.hello;

    m = mImageCount % 3;
    if (m == 1) {
        resourceId = R.drawable.photo1;
    } else if (m == 2) {
        resourceId = R.drawable.photo2;
    }
    addNewImageToScreen(resourceId);
}

私が間違っていることを知っている人はいますか?ありがとう

4

1 に答える 1

1

ImageViewこの場合、次のようにタグで一意に識別できる画像を交換しようとしていると思います。

ImageView imageView = new ImageView(_context);
imageView.setTag(1);

そして、GridView/をImageViewクリックして、次のようにタグを確認します。

gridview.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {

        Tag = (Integer) arg1.getTag();

    }
}
于 2012-05-31T05:40:01.297 に答える