晚上好堆!
我已经开始学习Android开发作为一种爱好,我现在正在尝试开发我的第一个“真正的”应用程序(我已经只从书中制作了五个简单的应用程序)。
在这个应用程序中,我有两个按钮,它们将“创建”相同的Activity,但是使用来自同一基类的两个不同对象,因此允许我根据单击的按钮自定义应用程序的行为。 但是,当我尝试创建Intent实例时,我的应用程序崩溃了。
以下是基本Activity类的代码
public class BaseDictionnaryActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.basedictionnary);
}
public void onDestroy()
{
super.onDestroy();
}
}
这是崩溃的代码。该行是创建Intent对象的行。
public class DictionnaryActivity extends Activity
{
private BaseDictionnaryActivity jlpt1;
private BaseDictionnaryActivity jlpt2;
private Button btjlpt1 = null;
private Button btjlpt2 = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.dictionnary);
jlpt2 = new BaseDictionnaryActivity();
jlpt1 = new BaseDictionnaryActivity();
btJLPT1 = (Button)findViewById(R.id.jlpt1);
btJLPT1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent myIntent = new Intent(DictionnaryActivity.this,
jlpt1.getClass());
jlpt1.this.startActivity(myIntent);
}
});
btJLPT2 = (Button)findViewById(R.id.jlpt2);
btJLPT2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent myIntent = new Intent(DictionnaryActivity.this,
jlpt2.getClass());
jlpt2.this.startActivity(myIntent);
}
});
}
public void onDestroy()
{
super.onDestroy();
}
}
感谢您的帮助!
答案 0 :(得分:4)
只是为了纠正,
Intent myIntent = new Intent(DictionnaryActivity.this,
jlpt1.getClass());
在此,第二个参数必须是,您的目标活动BaseDictionnaryActivity.class
所以,它看起来像,
Intent myIntent = new Intent(DictionnaryActivity.this,
BaseDictionnaryActivity.class);
startActivity(myIntent);
另外请确保在应用程序的清单文件中输入BaseDictionnaryActivity,
看起来像,
<activity android:name=".BaseDictionnaryActivity"
....>
</activity>
答案 1 :(得分:1)
Maybe:
Intent myIntent = new Intent(DictionnaryActivity.this,
BaseDictionnaryActivity.class);
startActivity(myIntent);
答案 2 :(得分:0)
更改此
Intent myIntent = new Intent(DictionnaryActivity.this,
NextActivity.class);
答案 3 :(得分:0)
Intent myIntent = new Intent(DictionnaryActivity.this,
jlpt2.class);
^^^^^^^^^^^^
您需要在Intent的第二个参数中提供下一个活动.class。
答案 4 :(得分:0)
用nameOfClassToBeLaunched.class替换jlpt1.getClass() 在其他活动中创建活动实例也是不好的做法。