Dro*_*man 0 java android android-intent android-activity
抱歉愚蠢的问题,java和Android对我来说都是新手;)
我的问题:我无法在一个非常简单的应用程序中切换两个活动.我尝试过类似主题中描述的解决方案,但它没有用.
所以这是我的第一个活动(我没有粘贴导入):
public class OneActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void OnStart(){
Button Btn = (Button)findViewById(R.id.btnNext);
Btn.setOnClickListener(new OnClickListener() {
public void onClick(View Button) {
Intent myIntent = new Intent(OneActivity.this, UserInput.class);
OneActivity.this.startActivity(myIntent);
}
});
}
Run Code Online (Sandbox Code Playgroud)
}
第二个Activity非常简单 - 它只是加载一个名为userinput.xml的布局:
public class UserInput extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.userinput);
Run Code Online (Sandbox Code Playgroud)
}
}
Manifest的应用程序部分如下所示:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".OneActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<activity
android:name=".UserInput"
android:label="@string/app_name" />
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序并单击按钮时没有任何反应.哪里可能是问题?
//好吧,我把代码放到了onCreate()方法中,所以它现在看起来如下:
public class OneActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button Btn = (Button)findViewById(R.id.btnNext);
Btn.setOnClickListener(new OnClickListener() {
public void onClick(View Button) {
Intent myIntent = new Intent(OneActivity.this, UserInput.class);
OneActivity.this.startActivity(myIntent);
}
});
}
Run Code Online (Sandbox Code Playgroud)
}
现在,只要单击"下一步"按钮,应用程序就会崩溃(强制关闭).
使用大写"O"定义onStart()函数.这就是永远不会调用该函数的原因.
你的onStart():
public void OnStart(){ ... }
Run Code Online (Sandbox Code Playgroud)
怎么样:
// Note the lowercase 'o' in onStart
public void onStart(){ ... }
Run Code Online (Sandbox Code Playgroud)
另请注意,当您要覆盖方法时,在函数名称上方使用@Override将有助于防止出现这些错误,因为Eclipse(或您使用的任何IDE)将告诉您实际上并未覆盖某个函数.
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |