无需启动新活动即可发送数据

时间:2015-04-16 20:43:19

标签: java android android-intent sharedpreferences

所以基本上我的问题只是在标题中解释。如何在活动之间发送数据,而无需启动接收数据的活动。这是我的代码:这是发送数据的主要活动:

public class MainActivity extends Activity {

private EditText mainedit1;
private TextView maintext1;
private Button   mainadd1;
private Button   maindone1;
@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
maindone1=(Button) findViewById(R.id.maindone);
mainedit1=(EditText)findViewById(R.id.mainedit1);
maintext1=(TextView)findViewById(R.id.maintext1);
mainadd1=(Button)findViewById(R.id.mainadd);

    mainadd1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

           String test1= mainedit1.getText().toString();
           Intent intent = new Intent(MainActivity.this,test.class);
           intent.putExtra("word",test1);
           startActivity(intent);
        }
    });

这是接收数据的活动:

public class test extends Activity {
TextView testtext;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fortest);
    testtext=(TextView)findViewById(R.id.testtext);
    Intent intent = getIntent();
    String Word = intent.getStringExtra("word");
    testtext.setText(Word);
}

所以我在这里做的是发送数据但是也开始活动,这不是我想要分享的。请告诉我如何修复我的代码?

2 个答案:

答案 0 :(得分:2)

看来你只是想保存一个字符串供以后使用。在MainActivity中,只需执行以下操作即可保存字符串:

getSharedPreferences("my_prefs", Context.MODE_PRIVATE).edit().putString("word", test1).commit();

然后,当您准备好在测试活动中检索它时,就这样做:

String Word = getSharedPreferences("my_prefs", Context.MODE_PRIVATE).getString("word", null);
testtext.setText(Word);

答案 1 :(得分:0)

你可以使用android的sharedprefrence代码来实现     在您的MainActivity中,只需执行以下保存字符串:

getSharedPreferences("my_prefs", Context.MODE_PRIVATE).edit().putString("word", test1).commit();

然后当您准备好在测试活动中检索它时,就这样做:

String Word = getSharedPreferences("my_prefs", Context.MODE_PRIVATE).getString("word", null);
testtext.setText(Word);

                            OR 

通过创建静态变量,无需启动新的Acitivity即可发送数据 离。

public class First_Activity extends Activity {
 public static String USER_FORMATED_NUMBER = null;

 USER_FORMATED_NUMBER="Data you want to pass"; 
}

public class Second_Activity extends Activity {
 String data=First_Activity.USER_FORMATED_NUMBER; 
}