第一项活动:
public class MainActivity extends Activity {
private Button btn;
private Button btnsbm;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button);
btnsbm=(Button)findViewById(R.id.button2);
et=(EditText)findViewById(R.id.editText);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("prefData", MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString("key",et.getText().toString());
editor.apply();
Toast.makeText(MainActivity.this, "Data added",Toast.LENGTH_LONG).show();
}
});
gotonextactivity();
}
public void gotonextactivity() {
btnsbm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,Activty_2.class);
startActivity(intent);
}
});
}
}
答案 0 :(得分:0)
虽然这个问题已得到解答。我想告诉您,使用lst = ["1","2","3"]
lst2 = map(int,lst)
print lst2
不是在活动之间传输数据的方式。
SharedPreferences类提供了一个通用框架,允许您保存和检索原始数据类型的持久键值对。您可以使用SharedPreferences保存任何原始数据:布尔值,浮点数,整数,长整数和字符串。这些数据将在用户会话中持续存在(即使您的应用程序被终止)。
如果您的要求如此。那么您可以更多地解释一下您选择这种方法的原因。
所有Android开发人员的一个常见做法是在intents中使用额外内容(请查看附加内容下的部分)。
您可以使用putExtras()将数据传递到下一个活动并按this SO answer
中的说明检索它们答案 1 :(得分:0)
不需要Sharedpreference
来完成这项工作,您只需将数据放入Intent
并将其置于新活动中即可。
首先编辑您的按钮onClick()
就像这样
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"Data added",Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this,Activty_2.class);
intent.putExtras("data", et.getText().toString());
startActivity(intent);
});
然后在您添加的Activty_2
onCreate()
方法内
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("data"); // this is your text
}
希望它有所帮助。
答案 2 :(得分:0)
你让我的朋友变得困难,你只需要使用意图将数据传递给你的其他活动。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putString("key",editText1.gettext().toString());
startActivity(intent);
}
});
现在从onCreate()
中的SecondActivity中获取您的数据:
Intent intent = getIntent();
String data = intent.getString("key");
textView.setText(data);
答案 3 :(得分:-1)
写Book.number_of_readers
而不是editor.commit();
。请给出正确的错误。共享偏好没有填充或问题是别的吗?