按钮单击打开新活动

时间:2013-04-17 13:17:47

标签: android class android-intent android-activity

我已经看过每个活动之间切换的例子,我总是得到相同的结果。应用程序炸弹。

据我所知,如果你有一个填充布局内容的java类,那么为了切换到另一个布局,你必须'链接'到java文件,而java文件又会打开setContentView(R .layout.whatever);

当我尝试这样做时,就像我说我的应用程序炸弹了。我的代码如下: -

FROM Java类: -

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.activity_main);

    Button next = (Button) findViewById(R.id.goesnews);
    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), ac2.class);
            startActivityForResult(myIntent, 0);
        }

    });

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);   




}

TO java file(ac2)

     public class ac2 extends Activity {

     /** Called when the activity is first created. */
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main2);

     }}

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

尝试从此行中删除零:

startActivityForResult(myIntent, 0);

像这样并将其改为:

startActivity(myIntent);

并更改此行:

Intent myIntent = new Intent(view.getContext(), ac2.class);

对此:

Intent myIntent = new Intent(firstActivityName.this, ac2.class);

因为你来到这里按钮的上下文而不是活动。

答案 1 :(得分:0)

试试这种方式

将onclick功能添加到xml文件中的按钮 像这样

<Button 
        android:id="@+id/previous" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="click"
        android:onClick="move" />

并在你的java文件中 使函数像这样移动

public void move(View v)
{
         Intent myIntent = new Intent(yourclass.this, ac2.class);
        startActivityForResult(myIntent,0);
 }

答案 2 :(得分:0)

解决方案很简单,基于VSK的响应(谢谢)稍作调整。

需要ImageButton: -

    <Button 
    android:id="@+id/previous" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:text="click"
    android:onClick="move" />

需要Java: -

    public void move(View v)
    {
    Intent myIntent = new Intent(yourclass.this, ac2.class);
    startActivityForResult(myIntent, 0);
    }

VSK - 请注意startActivityForResult的“0”属性

全部谢谢