1

画像をフルスクリーンで表示したいフルアクティビティクラス。gridViewに表示されているすべての画像があります。その点で問題はありませんが、グリッドビューの画像をクリックすると、呼び出した xml ファイルだけが表示されます。ここで FullImageAcitivity ファイルの id を呼び出すのがどこかで間違っていると思います。

public class FullImageActivity extends Activity {

Button download, setas;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.full_image);
    setas = (Button) findViewById(R.id.setas);
    download = (Button)findViewById(R.id.download);
    final Intent i = getIntent();
    final   List<Item> items = new ArrayList<Item>();
    final ImageAdapter imageAdapter = new ImageAdapter(this);       
    ImageView imageView = (ImageView) findViewById(R.id.full_image_view);
    imageView.setImageResource(items.indexOf(i));
    setas.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             WallpaperManager myWallpaperManager
             = WallpaperManager.getInstance(getApplicationContext());
            try {
                myWallpaperManager.setResource(imageAdapter.items.indexOf(i));
            } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }
    }
    });
  }
}

これが私のimageAdapterファイルです。

public class ImageAdapter extends BaseAdapter {
List<Item> items = new ArrayList<Item>();
private LayoutInflater inflater;

public ImageAdapter(Context context) {
    inflater = LayoutInflater.from(context);

    items.add(new Item("One",       R.drawable.abstact_one));
    items.add(new Item("Two",   R.drawable.abstract_three));
    items.add(new Item("Three", R.drawable.image_two));
    items.add(new Item("Four",      R.drawable.image_four));
    items.add(new Item("Five",     R.drawable.image_five));
    items.add(new Item("Six",      R.drawable.image_nine));
    items.add(new Item("Seven",       R.drawable.image_ten));
}

@Override
public int getCount() {
    return items.size();
}

@Override
public Object getItem(int i) {
    return items.get(i);
}

@Override
public long getItemId(int i) {
    return items.get(i).drawableId;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    View v = view;
    ImageView picture;
    TextView name;

    if(v == null) {
        v = inflater.inflate(R.layout.other, viewGroup, false);
        v.setTag(R.id.picture, v.findViewById(R.id.picture));
        v.setTag(R.id.text, v.findViewById(R.id.text));
    }

    picture = (ImageView)v.getTag(R.id.picture);
    name = (TextView)v.getTag(R.id.text);

    Item item = (Item)getItem(i);

    picture.setImageResource(item.drawableId);
    name.setText(item.name);

    return v;
}

private class Item {
    final String name;
    final int drawableId;

    Item(String name, int drawableId) {
        this.name = name;
        this.drawableId = drawableId;
    }
 }
}

latestTab アクティビティ ファイル

public class LatestTab extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.latestphotos);

      GridView gridView = (GridView) findViewById(R.id.grid_view);

        // Instance of ImageAdapter Class
        gridView.setAdapter(new ImageAdapter(this));

        /**
         * On Click event for Single Gridview Item
         * */
        gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

                // Sending image id to FullScreenActivity
                Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                // passing array index
                i.putExtra("id", position);
                startActivity(i);
            }
        });

}
}

full_image.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
    android:id="@+id/relshare"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="#79B8B8B8" >

    <Button
        android:id="@+id/setas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="14dp"
        android:layout_toRightOf="@+id/share"
        android:gravity="right"
        android:text="Set As"
        android:textSize="25sp" />

    <Button
        android:id="@+id/download"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="34dp"
        android:text="Download"
        android:textSize="25sp" />

</RelativeLayout>

<ImageView android:id="@+id/full_image_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

</LinearLayout>

latestphotos.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<GridView
    android:id="@+id/grid_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="0dp"
    android:stretchMode="columnWidth"
    android:numColumns="2" 
    />
</FrameLayout>
4

2 に答える 2

0

値を渡したが、実際には FullImageActivity で取得していないため、 FullImageActivityでレイアウトのみを表示します。Intent

アクティビティで、以下の値を取得します。

  final int i = getIntent().getIntExtra("id");

そして、あなたArrayListには値が追加されていないため、リストiから値を取得できません。item以下のように値を追加するだけですitems

      // Selected image id
final   List<Item> items = new ArrayList<Item>();
items.add(new Item("One",       R.drawable.abstact_one));
items.add(new Item("Two",   R.drawable.abstract_three));
items.add(new Item("Three", R.drawable.image_two));
items.add(new Item("Four",      R.drawable.image_four));
items.add(new Item("Five",     R.drawable.image_five));
items.add(new Item("Six",      R.drawable.image_nine));
items.add(new Item("Seven",       R.drawable.image_ten));

その後、画像を設定しますImageView

ImageView imageView = (ImageView) findViewById(R.id.full_image_view);
imageView.setImageResource(items.indexOf(i));
于 2013-10-23T13:12:42.830 に答える