如何使onClickListener从另一个活动接收Intent信息

时间:2016-01-15 14:51:58

标签: java android android-intent

我正试图让一个按钮使用来自另一个活动的一些数据,我确实搜索过,但我没有找到方法。

onClickListener不起作用。 这是我的onCreate里面的代码:

super.onCreate(savedInstanceState);
        setContentView(R.layout.show_message);

        Intent intent = getIntent();
        String msg = intent.getStringExtra("MESSAGE");
        ScrollTextView scrolltext = (ScrollTextView) findViewById(R.id.scroll_text);
        scrolltext.setText(msg);
        scrolltext.setTextSize(220);
        scrolltext.startScroll();

        super.onResume();


        DialogFragment mDialog = new GeneralDialogFragment();
        mDialog.show(getSupportFragmentManager(), "Dialog TAG");

        ImageButton mImageButton = (ImageButton)findViewById(R.id.image_button);
        mImageButton.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                //I'm sure this is not the to make this button works. What code should I put here to pass this data to the ScrollTextView?
                scrolltext.setText(msg);
                scrolltext.setTextSize(220);
                scrolltext.startScroll();

            }
        });

1 个答案:

答案 0 :(得分:0)

您编写的这两行仅用于从上一个正在执行的活动中获取信息

Intent intent = getIntent(); 
String msg = intent.getStringExtra("MESSAGE");

如果您想在任何时候使用其他活动的数据,您必须使用以下行保存上一个活动中的数据:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("msg", "MESSAGE");
 editor.commit();

并按照以下方式调用您的活动:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String yourmessage = prefs.getString("msg", null);
if (restoredText != null) {
  String name = prefs.getString("msg", "No name defined");//"No name defined" is the default value.
}