在活动之间传输textview数据?

时间:2013-07-01 22:32:58

标签: java android eclipse android-activity

我目前正在创建一个具有edittext和2个按钮的应用程序,每次我在edittext中写入内容然后按下button1,就会添加一个新的textview。这是代码:

public void novVnos (View v){
    EditText eText = (EditText) findViewById(R.id.editText1);
    LinearLayout mLayout = (LinearLayout) findViewById(R.id.linearLayout);

    mLayout.addView(createNewTextView(eText.getText().toString()));
}

private TextView createNewTextView (String text){
    final LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    final TextView newTextView = new TextView(this);

    newTextView.setLayoutParams(lparams);
    newTextView.setText(text);
    return newTextView;
}

基本上我正在做的是添加新的“玩家”,一旦我添加了它们,我想按下button2。 Button2打开一个新活动,新活动应该读取我在上一个活动中添加的所有文本视图。

3 个答案:

答案 0 :(得分:1)

我要做的是创建一个“播放器”class并在static ArrayList<String> players课程中创建一个Player.java。每次拨打createNewTextView(textView)时,都会向text players添加ArrayList变量。

在下一个Activity中,您只需拨打Player.players.get(index)或任何ArrayList功能,您需要在下一堂课中完成所需的任何工作。您还可以在当前ArrayList中创建此Activity,并在Intent中将其作为额外内容传递,但我认为为玩家创建单独的课程将是最简单的。

您的ArrayList显然不需要暂停String。它可以包含任何你想要的东西,包括一个Player对象。

ArrayList Docs

答案 1 :(得分:0)

这是一个例子:

在第一项活动中:

   Button search = (Button) findViewById(R.id.Button02);
    search.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {


            Intent intent = new Intent(MainActivity.this, result.class);
            Bundle b = new Bundle();

            EditText searchtext = (EditText) findViewById(R.id.searchtext);

            b.putString("searchtext", searchtext.getText().toString());
                   //Add the set of extended data to the intent and start it
            intent.putExtras(b);
            startActivityForResult(intent,RESULT_ACTIVITY);
        }
    });

在onCreat的第二个活动中:

 Bundle b = getIntent().getExtras();
    String searchtext = b.getString("searchtext"); //here you get data then use it as you want

  //here I use it to show data in another edittext
     EditText etSearch = (EditText) findViewById(R.id.searchtext2);
     etSearch.setText(searchtext);

答案 2 :(得分:0)

实施&#34;播放器&#34;上课将是一种方式。在这方面,您不必担心在两个活动之间传输数据。您可以使用Singleton方法确保您的类只定义了一次。你需要确保它只被定义一次因为如果用户关闭应用程序或杀死应用程序,那么当他再次打开应用程序时,它会创建另一个类,因此所有数据都将丢失。