Android 单击按钮时,将创建一个新的contentView
我在跟随我正在读的书,并试图把它应用到我想做的事情上。 我设置了一个按钮,是的,它可以工作,但当我点击它时,会显示一个空白屏幕。 这是我的密码:Android 单击按钮时,将创建一个新的contentView,android,android-button,Android,Android Button,我在跟随我正在读的书,并试图把它应用到我想做的事情上。 我设置了一个按钮,是的,它可以工作,但当我点击它时,会显示一个空白屏幕。 这是我的密码: public void onCreate(Bundle savedInstanceState) { View volButton = findViewById(R.id.volButton); volButton.setOnClickListener(this); } public void o
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语句中,它看起来太草率了。这就是你要做的:
因此,如果您想显示不同的内容,请使用不同的布局。活动类负责为您创建一个窗口,您可以在其中使用setContentView(视图)放置UI。因为您正在创建一个新的意图,即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>
你想在点击一个按钮时做什么,如果你想在按钮上加载一个新的活动,那么你将得到空白屏幕,因为你没有为音量控制活动设置任何布局。我不知道这是不是坏的,但是我改变了Android:主题=“@ Android:风格/主题。对话”到Android:主题=“@android:style/Theme.NoDisplay”并且它以我想要的方式工作。:)我忘了提到尝试使用不同的主题来实现你想要的。:)所以这样做不是一个坏习惯,也不是编写应用程序的肮脏方式?(特定按钮)