我想使用Intents打开一个Activity按照以下代码:
Intent i=new Intent("com.example.learn.CONNECTION");
@Override
protected void onCreate(Bundle savedInstanceState) {
.
.
.
server=(Button) findViewById(R.id.Server);
client=(Button) findViewById(R.id.Client);
server.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
i.putExtra("check", "server");
startActivity(i);
// TODO Auto-generated method stub
}
});
client.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
i.putExtra("check1","client");
startActivity(i);
}
}); 现在在这个连接活动中,我正在检查它:
if(getIntent().hasExtra("check"))
value = getIntent().getExtras().getString("check");
if(getIntent().hasExtra("check1"))
value = getIntent().getExtras().getString("check1");
但代码无法接收客户端或服务器。如何解决这个问题还有其他方法吗?任何其他与此代码无关的建议也将被接受。
答案 0 :(得分:1)
亲爱的,你犯了一个错误。您提供的示例通常用于启动Web URL。 如果你想开始另一个意图,那么你将不得不改变第一行。
Intent intent = new Intent(CurrentActivity.this , NextActivity.class);
请试试。
答案 1 :(得分:0)
不要使用不同的变量,如“check”或“check 1”使用标志。此代码将保存您的问题
server.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
i.putExtra("check", "server");
startActivity(i);
// TODO Auto-generated method stub
}
});
client.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
i.putExtra("check","client");
startActivity(i);
}
在您的下一个活动中,只需使用此代码即可。
value = getIntent().getStringExtra("check");
if(value.equals("server")){
//server code
}
else if(value.equals("client")){
//client code
}
如果您的服务器和客户端值是动态的,您也可以以相同的方式使用一些布尔标志。