0

次のコードに従って、インテントを使用してアクティビティを開きたい:

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

親愛なるあなたは間違いをしています。あなたが提供したサンプルは、Web URL を正常に起動するために使用されます。別のインテントを開始する場合は、最初の行のみを変更する必要があります。

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

これを試してください。

于 2013-05-22T12:09:29.220 に答える
0

"check" や "check 1" use a flag などの異なる変数を使用しないでください。このコードはあなたの問題を解決します

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 に答える