【问题标题】:Android Sharing Resources / passing resource information between activitiesAndroid共享资源/活动之间传递资源信息
【发布时间】:2014-10-25 10:03:39
【问题描述】:

您好朋友,我在开发 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);

}
}

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

【问题讨论】:

  • “我面临一个新问题”是什么问题?
  • 每当应用程序崩溃时,请在此处发布日志以获得更好的帮助;)
  • okkk 问题是我在一个活动中有一个图像视图,当我点击该图像视图时,图像应该在下一个活动中打开......知道如何实现......

标签: android android-activity view resources imageview


【解决方案1】:
public void viewImage(View v)
{
    System.out.println("Function Running");
    Intent intent = new Intent(this , ViewFullImage.class);

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

    startActivity(intent);

}

是视图!空值 ?如果是这样,您将获得一个使应用程序崩溃的 NPE。 另外,清单中是否都注册了活动?

【讨论】:

  • 活动在清单中注册。活动开始,但图像未显示在下一个活动中。 BTW 崩溃问题已解决。
【解决方案2】:

您不能使用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);
}

【讨论】:

  • 感谢 Roman Zhukov 的回答,但我现在有另一个问题,我将从第一个活动中传递图像名称,并希望在另一个活动中使用该名称创建图像视图,你能帮我解决吗这个问题
  • 还有什么问题?如何从图像路径创建位图?
  • 是的,这就是问题“如何从第一个活动传递的图像名称创建图像视图??????”
猜你喜欢
  • 1970-01-01
  • 2013-12-10
  • 2010-12-18
  • 2021-09-24
  • 2011-05-11
  • 2019-10-07
  • 1970-01-01
相关资源
最近更新 更多