我刚开始学习android studio。我想制作一个简单的应用程序,用户可以输入地点的名称,以及他想在哪一天访问该地点。
我想使用intent putExtra将地名和日期发送到secondActivity(PLAN)。 之后在secondActvity(PLAN)中我想使用SharedPreferences,以便可以保存地名和日期。如果用户选择其他地点和日期,则可以将其添加到保存的数据中。
这是我的代码: DANAMALL(FirstActvity.java)
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class DANAMALL extends AppCompatActivity {
public static final String TAG_PLACE = "keyplace";
public static final String TAG_DAY = "keyDay";
Button b1;
EditText etpName;
EditText etd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dana_mall);
etpName = (EditText) findViewById(R.id.PLACE);
etd = (EditText) findViewById(R.id.DAY);
b1 = (Button)findViewById(R.id.add);
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(DANAMALL.this, PLAN.class);
intent.putExtra(TAG_PLACE, etpName.getText().toString());
intent.putExtra(TAG_DAY, etd.getText().toString());
startActivity(intent);
}
});}}
PLAN(secondActvity.java):
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class PLAN extends Activity {
TextView txt;
Button b1;
SharedPreferences plan ;
public static final String TAG_PLACE = "keyplace";
public static final String TAG_DAY = "keyDay";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.plan);
b1 = (Button)findViewById(R.id.show);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView txt = (TextView) findViewById(R.id.txtv);
Intent intent = getIntent();
String place = intent.getStringExtra(TAG_PLACE );
String Day = intent.getStringExtra(TAG_DAY);
plan=getSharedPreferences("savekey",MODE_PRIVATE);
SharedPreferences.Editor edit=plan.edit();
edit.putString("keyplace",place);
edit.putString("keyday",Day);
edit.commit();
Toast.makeText(getBaseContext(),
"YOUR PLAN SAVED :) ", Toast.LENGTH_LONG).show();
}
});
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
plan = getSharedPreferences("savekey", MODE_PRIVATE);
String place = plan.getString("keyplace", "");
String Day = plan.getString("keyday", "");
String msg = "VISIT:" + place + "DAY :" + Day;
b1.setText(msg);
}
}); }}
我的问题:传递后,secondActvity中没有数据 ..... SharedPreferences未显示已保存的数据。
我很想知道如何解决这个问题:)
答案 0 :(得分:-2)
使用意图putextra类型
String namestr = text a passer;
Intent intent=new Intent(MainActivity.this,you_activity.class);
intent.putExtra("code",namestr);
startActivity(intent);
并在其他活动中恢复
String namestr = getIntent().getStringExtra("code");