Android共享资源/在活动之间传递资源信息

时间:2014-10-25 10:03:39

标签: android android-activity view resources imageview

Hello Friends我在开发Android应用时面临一个新问题。我只是Android应用程序开发的新手。我已经开始开发一个应用程序,其中我在活动中有一系列图像,点击时应该在另一个活动中打开

这是我的布局

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnCount="3"
android:orientation="vertical"
android:padding="10dp" 
android:background="#99CC00">

<ImageView
    android:id="@+id/imageView1"
    android:layout_column="0"
    android:layout_row="0"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:padding="10dp"
    android:src="@drawable/sample_2"
    android:onClick="viewImage" />
</GridLayout>

这是我的代码......

public void viewImage(View v)
{
    System.out.println("Function Running");
    Intent intent = new Intent(this , ViewFullImage.class);

    intent.putExtra("name", v.getId());

    startActivity(intent);

}

这是我的其他活动

public class ViewFullImage extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_fullimage);

    ImageView imgview = (ImageView)findViewById(R.id.imageView1);
    Intent intent = getIntent();
    int data = intent.getIntExtra("name", 0);

    imgview.setImageResource(data);

}
}

但是当我运行应用程序时,它在点击图像打开活动后停止 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

public void viewImage(View v)
{
    System.out.println("Function Running");
    Intent intent = new Intent(this , ViewFullImage.class);

    intent.putExtra("name", v.getId());

    startActivity(intent);

}

v是视图!空值 ?如果它是你会得到一个崩溃应用程序的NPE。 此外,清单中是否都注册了活动?

答案 1 :(得分:0)

您无法使用view.getId()检索图像资源标识符。 getId()返回小部件ID。您可以使用以下代码进行第一项活动,而不是这样:

ImageView imageView = (ImageView)findViewById(R.id.imageView1);
imageView.setDrawableResource(<your drawable resource id>);
imageView.setTag(<your drawable resource id>);
...
public void viewImage(View v)
{
    System.out.println("Function Running");
    Intent intent = new Intent(this , ViewFullImage.class);

    intent.putExtra("name", (int)v.getTag());

    startActivity(intent);
}