我已经在eclipse中使用API 15和目标sdk创建了应用程序。我想让按钮开始新的活动。我已经创建了该代码,但我遇到了问题。当我在我的手机上运行ninetology stealh 2时,当我点击一个按钮并且我的应用程序崩溃并且我的手机显示我:
“不幸的是开始”
我已经在其他手机中测试了它,它显示了同样的问题。我也使用了更多的技术,我从新波士顿学习,vongella另一个但仍然有相同的问题。这是我的.xml和java代码: -
package com.mytuturkiu.mytuturkiu; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.content.Intent; public class Menu extends Activity { Button btnmodul; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); btnmodul = (Button)findViewById(R.id.btnmodul); btnmodul.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent vokal = new Intent(v.getContext(),Modul_Vokal.class); startActivity(vokal); } } ); } }
包com.mytuturkiu.mytuturkiu;
import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class Modul_Vokal extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_modul__vokal); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.modul__vokal, menu); return true; } }
的AndroidManifest.xml
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="15" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.mytuturkiu.mytuturkiu.Menu"
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="com.mytuturkiu.mytuturkiu.Modul_Vokal"
android:label="@string/title_activity_modul__vokal" >
</activity>
</application>
我的应用有什么问题?..
答案 0 :(得分:1)
您不应该v.getContext()
...您应该使用getApplicationContext()
..
视图v
是您点击的视图。因此v.getContext()
返回视图运行的上下文。这是问题所在。
我认为使用应用程序的上下文更好,不会导致问题。
答案 1 :(得分:0)
您可以在班级中添加如下函数:
public class Menu extends Activity {
Button btnmodul;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
btnmodul = (Button)findViewById(R.id.btnmodul);
btnmodul.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// CALL THE FUNCTION
startMyActivity();
}
} );
}
private void startMyActivity(){
Intent vokal = new Intent(this,Modul_Vokal.class);
startActivity(vokal);
}
}
该函数位于您的活动上下文中,当您在Intent构造函数中放入“ this ”时,它将采用正确的函数。
答案 2 :(得分:0)
尝试,
Intent vokal = new Intent(getApplicationContext(),Modul_Vokal.class);
startActivity(vokal);
取代,
Intent vokal = new Intent(v.getContext(),Modul_Vokal.class);
startActivity(vokal);
这肯定会对我的朋友有用。