私は最初の Android アプリに取り組んでおり、コーディング中に、インテントで別のアクティビティから送信されたバンドルから受け取っていない値があることに気付きました。コードを分離することができましたが、コードから値を受け取らない理由がわかりません。
public class Registration extends Activity {
EditText edit1;
EditText edit2;
EditText edit3;
EditText edit4;
JSONParser jsonParser = new JSONParser();
public static String url_data="";
private static final String TAG_SUCCESS = "operation";
public final static String user="com.example.try1.MESSAGE";
public final static String pass="com.example.try1.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent=getIntent();
setContentView(R.layout.activity_registration);
edit1= (EditText) findViewById(R.id.nameuser);
edit2= (EditText) findViewById(R.id.email);
edit3= (EditText) findViewById(R.id.username);
edit4= (EditText) findViewById(R.id.password);
Button btnRegister= (Button) findViewById(R.id.new_user);
btnRegister.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
//new CreateNewProduct().execute();
String message1= edit1.getText().toString();
String message2= edit2.getText().toString();
String message3= edit3.getText().toString();
String message4= edit4.getText().toString();
Intent i = new Intent(Registration.this, Login.class);
Bundle extras=new Bundle();
Log.d("username", message3);
extras.putString(user, message3);
extras.putString(pass, message4);
i.putExtras(extras);
startActivity(i);
finish();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.registration, menu);
return true;
}
}
それが登録用のコードです。これはLogin.classのコードです
public class Login extends Activity {
JSONParser jsnParser = new JSONParser();
public static String url_login="http://www.reflap.com/account/reflap_login";
private static final String TAG_SUCCESS = "operation";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_login);
//Intent it =getIntent();
Bundle extras=this.getIntent().getExtras();
String message=extras.getString("user");
String message2=extras.getString("pass");
//Log.d("username", message);
if(message==null){
Log.d("username", "empty value");
}
//Create the text view
TextView text = new TextView(this);
text.setTextSize(40);
text.setText(message);
setContentView(text);
//new Loggerin().execute();
}
メッセージ1はメッセージ2と同じなlog.d
ので、空の値を書き込みます。null
また、ビューには何もありません。これを交換したら
String message=extras.getString("user");
String message2=extras.getString("pass");
これとともに
String message=extras.getString(Registration.user);
String message2=extras.getString(Registration.pass);
最後の値セットのみを受け取ります。バンドルを使用して、ログイン クラスで使用したい 2 つの文字列を送信しようとしています。