java - android:如何更改按钮点击布局?

标签 java android android-intent android-activity

我必须遵循代码来选择按钮单击时的布局。

View.OnClickListener handler = new View.OnClickListener(){
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.DownloadView: 
                // doStuff
                setContentView(R.layout.main);
                break;
            case R.id.AppView: 
                // doStuff
                setContentView(R.layout.app);
                break;
        }
    }
};

findViewById(R.id.DownloadView).setOnClickListener(handler);
findViewById(R.id.AppView).setOnClickListener(handler);

当我点击“AppView”按钮时,布局发生变化,但当我点击“DownloadView”按钮时,什么也没有发生。

This link说我必须开始一项新 Activity 。

但是我不知道如何使用那里的代码来启动新的 Activity ,是否会添加一个新文件?

编辑: 我有关于新 Activity 的代码:

package com.example.engagiasync;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class AppView extends Activity implements OnClickListener{


    @Override
    public void onCreate(Bundle savedInstanceState){

        setContentView(R.layout.app);

        TextView tv = (TextView) this.findViewById(R.id.thetext);
        tv.setText("App View yo!?\n");
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }
}

但它不起作用,它强制关闭,logcat 说: enter image description here

最佳答案

  Button btnDownload = (Button) findViewById(R.id.DownloadView);
  Button btnApp = (Button) findViewById(R.id.AppView);

  btnDownload.setOnClickListener(handler);
  btnApp.setOnClickListener(handler);

  View.OnClickListener handler = new View.OnClickListener(){

  public void onClick(View v) {

    if(v==btnDownload){ 
            // doStuff
            Intent intentMain = new Intent(CurrentActivity.this , 
                                           SecondActivity.class);
            CurrentActivity.this.startActivity(intentMain);
            Log.i("Content "," Main layout ");
    }

    if(v==btnApp){ 
            // doStuff
            Intent intentApp = new Intent(CurrentActivity.this, 
                                          ThirdActivity.class);

            CurrentActivity.this.startActivity(intentApp);

            Log.i("Content "," App layout ");

    }
   }
  };

注意:然后您应该在 list .xml 文件中声明所有 Activity ,如下所示:

<activity android:name=".SecondActivity" ></activity>
<activity android:name=".ThirdActivity" ></activity>

编辑:更新这部分代码:):

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);// Add THIS LINE

    setContentView(R.layout.app);

    TextView tv = (TextView) this.findViewById(R.id.thetext);
    tv.setText("App View yo!?\n");
}

注意:检查 (Broken link) Tutorial About How To Switch Between Activities .

关于java - android:如何更改按钮点击布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121797/

相关文章:

java - Spring AOP 通用类型

java - JVM/Java,方法可访问性规则是否在运行时强制执行?

android - 如何编辑安卓动画插值器?

android - 如何从调用 Activity 类调用Service类的stopservice()方法

android - 检查是否有使用操作字符串注册的 BroadCastReceiver

android - 在 Android 事件创建 Intent 中指定日历

java - 无法向我的 JPanel 添加任何内容

java - 哪种设计模式可以制作pdf、excel等格式的报告

android - 如何在 Android native 代码中导入 media/stagefright/* 类

android - 保护 Android Intent 中的额外数据