我正在阅读我正在阅读的书,并尝试将其应用于我想要做的事情。 我有一个按钮设置,是的它可以工作,但是当我点击它时,会显示一个空白屏幕。 这是我的代码:
public void onCreate(Bundle savedInstanceState) {
View volButton = findViewById(R.id.volButton);
volButton.setOnClickListener(this);
}
public void onClick(View v) {
Intent i;
switch (v.getId()) {
case R.id.volButton:
i = new Intent(this, VolumeControl.class);
startActivity(i);
break;
}
}
音量控制等级
public class VolumeControl extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(getBaseContext(), "This is the Toast message", Toast.LENGTH_SHORT).show();
}
}
显示toast窗口,但是显示空白屏幕。
如果我添加setContentView(R.layout.main);在super.onCreate之后,它重新绘制主屏幕。如何在不重绘任何内容的情况下使用此设置?我不希望在我的主类中的switch语句中包含所有代码,它看起来太草率了。
答案 0 :(得分:0)
这就是你在做的事情:
然后,如果你执行setContentLayout(R.layout.main),则会显示与第一个Activity相同的布局,尽管它现在是VolumeControl。 因此,如果要显示不同的内容,请使用不同的布局。
答案 1 :(得分:0)
Activity类负责为您创建一个窗口,您可以在其中使用setContentView(View)放置UI。由于您正在创建一个新的Intent,即VolumeControl,因此您将专注于创建的VolumeControl的“窗口”。如果您希望在单击按钮时显示原始窗口,则在您的Android清单中,更改活动的android主题。
示例:
<activity
android:label="@string/app_name"
android:name=".VolumeControl"
android:theme="@android:style/Theme.Dialog">
<intent-filter >
<action android:name="my.package.NAME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>