0

別のアクティビティに文字列を送信するためのヘルプが必要です。

public class MainActivity extends Activity implements OnClickListener{

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent myInt = new Intent(this,Receiver.class);
    myInt.putExtra("key",Event);
    startActivity(myInt);
}

Button b;
EditText Edt;
String Event;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b=(Button)findViewById(R.id.button);
        b.setOnClickListener(this);
        Edt=(EditText)findViewById(R.id.EdtText);
        Event=new String(Edt.getText().toString());             
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

これが、このアクティビティに送信したい文字列イベントの意図です。

public class Receiver extends Activity {

TextView txtV;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.receiving);
    txtV=(TextView)findViewById(R.id.txtV);
    Bundle extras = getIntent().getExtras();
    if(extras !=null) {
        String value = extras.getString("key");
    }
    txtV.setText("key");
}
}

プログラムを実行すると、「キー」のみが表示されますが、最初のインテントでputExtraメソッドを使用したにもかかわらず、このアクティビティでは使用できないStringイベントを表示したいと思います。私を助けてください、私はそのような他の多くの同様の質問があることを知っていますが、私はまだそれを理解していません。

4

2 に答える 2

5

これを使って:

    txtV.setText(value);

これではない:

    txtV.setText("key");
于 2013-02-24T15:43:40.003 に答える
0

これを試して。お役に立てば幸いです。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b=(Button)findViewById(R.id.button);
    b.setOnClickListener(this);
    Edt=(EditText)findViewById(R.id.EdtText);
    Event=new String(Edt.getText().toString()); //Remove this line   
}

@Override
public void onClick(View arg0) {
    Event = Edt.getText().toString();  //Write here
    Intent myInt = new Intent(this,Receiver.class);
    myInt.putExtra("key",Event);
    startActivity(myInt);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.receiving);
    txtV=(TextView)findViewById(R.id.txtV);
    Bundle extras = getIntent().getExtras();
    if(extras !=null) {
        String value = extras.getString("key"); //assign it.
        txtV.setText(value); //set it to textview.
    }
}
于 2013-02-24T15:50:04.210 に答える