【问题标题】:Why doesn't a button change the layout? [closed]为什么按钮不改变布局? [关闭]
【发布时间】:2013-11-30 22:07:27
【问题描述】:

我想按下一个按钮并显示一个新的布局。

我做错了什么?

我的班级名称是:StarWars.java 和 Test1.java 布局名称:activity_star_wars-.xml 和 test1.xml

我的代码:

package de.starwars;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_star_wars);

Button jm = (Button) findViewById(R.id.btxJediMaster);
jm.setOnClickListener(new View.OnClickListener()
{

@Override
public void onClick(View v)
{
    // TODO Auto-generated method stub
    Intent i = new Intent (StarWars.this,Test1.class);
        startActivity(i);       
}
});

}

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

清单:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="de.starwars.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

【问题讨论】:

  • 你到底想做什么?你得到了什么例外?
  • 您似乎对自己在做什么感到非常困惑(无意冒犯)。为什么你的代码在 onCreateOptionsMenu 回调中?这涉及系统菜单......你真的想将视图膨胀到系统菜单中吗?我怀疑不是(如果你是,那就行不通了)。请详细描述您实际想要实现的目标。
  • 你自己听起来有点困惑,天才。
  • 您是否确保将 Starwars 和 Test1 活动都添加到您的 AndroidManifest.xml 中? (例如 '' 和 ''
  • 基本上我想要的是,如果我点击“btxJediMaster”按钮,应该会出现一个新的布局。所以我想做一个测验。绝地大师是四个困难之一。所以在我点击按钮后,应该会出现一个带有问题的新布局。我希望你现在能更好地理解我想要做什么。

标签: android button layout user-interface


【解决方案1】:

替换这个:

jm = (Button) findViewById(R.id.btxJediMaster);
    jm.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            Intent activityChangeIntent = new Intent(StarWars.this,Test1.class);
            StarWars.this.startActivity(activityChangeIntent);

        }
    });

还有manifest:

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
    android:name="de.starwars.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name="de.starwars.Test1"/>
</application>

【讨论】:

  • 我改了,还是得到:“应用程序StarWars(process de.starwars)已意外停止。请重试。”
  • 您是否在清单中添加了新活动?
  • 不,我没有。我在上面的帖子中添加了清单。我实际上需要改变什么?我现在是整个 android 开发的新手,所以如果我的一些问题看起来真的很愚蠢,我很抱歉——我只是想学习并做对。
  • 检查我编辑的答案,现在应该可以了。
  • 还有一件事,你能解释一下你到底做了什么吗?所以我看到你改变了,但你能解释一下你为什么这样做,这将非常有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 2018-01-21
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多