0

我想通过以下代码使用 Intents 打开一个活动:

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");

但是代码不起作用,它接收客户端或服务器。我应该如何解决这个问题是否还有其他出路。与此代码无关的任何其他建议也将被接受。

4

2 回答 2

1

亲爱的你做错了。您提供的示例用于正常启动网页 URL。如果您想开始另一个意图,那么您只需更改第一行。

Intent intent = new Intent(CurrentActivity.this , NextActivity.class);

请试试这个。

于 2013-05-22T12:09:29.220 回答
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
}

如果您的服务器和客户端值是动态的,您也可以以相同的方式使用一些布尔标志。

于 2013-05-22T13:08:12.303 回答