Android Basics - 两个类显示图像

时间:2013-10-30 16:16:02

标签: android

我有一个名为MainActivity.java的主要课程和另一个课程Image.java

没有什么花哨的

MainAcivity.java

    public class MainActivity extends Activity {

    Image myimage;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myimage = new Image();
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

Image.java

     public class Image extends Activity {
ImageView image_view;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
      Bitmap image = BitmapFactory.decodeResource(getResources(),       R.drawable.iguana);
      image_view = (ImageView)findViewById(R.id.iv);
       image_view.setImageBitmap(image);
}

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

然而,它从未显示过。 如果我将show image代码放到我的MainActivity中,它确实有效。 我假设我可能无法正确调用Image类。

在我的 layout.xml

    <ImageView
    android:id="@+id/iv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="126dp"
    android:layout_toRightOf="@+id/textView1" />

€已解决

将以下代码添加到我的MainActivity.class中,启动Image.class 谢谢

          Intent intent = new Intent(this, Image.class);
      startActivity(intent);

3 个答案:

答案 0 :(得分:3)

ImageActivity,您必须以startActivity启动它。没有必要实例化它,android会为你照顾它

答案 1 :(得分:0)

它不会显示,因为永远不会调用Image#onCreate。使用new Image(),您只需创建该对象,而不是调用Image#onCreate。您需要从MainActivity中launch the Image activity。而且无需实际调用new Image()

答案 2 :(得分:0)

您必须在Android清单中声明Image Activity