簡體   English   中英

如何將TextView添加到另一個活動

[英]How do I add a TextView to another activity

假設我有兩個活動,即AddViewSeeView

SeeView ,有一個按鈕將帶我進入AddView活動。 AddView活動中,我將輸入將在SeeViewSeeViewTextView的文本。

然后,單擊AddView上的按鈕,將轉到SeeView ,其中顯示從AddView添加的TextView。 如何以編程方式執行此操作?

必須在活動之間轉移視圖,您要做的是傳遞文本。 為此,您應該使用活動的startActivityForResult()onActivityResult()方法:

public class SeeView extends Activity {
    public static final int REQ_CODE_ADD_VIEW;

    private TextView textViewWithText;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_of_see_view);

        //this TextView is defined in xml: /res/layout/layout_of_see_view.xml
        //make sure its id is "@+id/text_view_with_text"
        textViewWithText=(TextView) findViewById(R.id.text_view_with_text);

        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //intent for AddView activity
                Intent intent=...;
                startActivityForResult(intent, REQ_CODE_ADD_VIEW, null);
            }
        })
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode,resultCode,data);

        if (resultCode==RESULT_OK) {
            if (requestCode==REQ_CODE_ADD_VIEW) {
                String text=data.getStringExtra("text", "");
                textViewWithText.setText(text);
            }
        }
    }
}

您的第二項活動:

public class AddView extends Activity {   
    private EditText editText;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_of_add_view);

        //this is done in case user quits your activity before
        //button is pressed
        setResult(RESULT_CANCELLED);    

        textViewWithText=(TextView) findViewById(R.id.edit_text);

        findViewById(R.id.another_button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //prepare result for SeeView activity
                Intent intent=new Intent();
                intent.putStringExtra("text", editText.getText().toString());
                //set the result, it will be passed to onActivityResult() in SeeView activity
                setResult(RESULT_OK, intent);
                finish();
            }
        })
    }
}

在您的FirstActivity中,說主要活動,您有一個editext和一個按鈕。 用戶在editext中輸入值。 在“按鈕”上單擊以獲取該值。 使用意圖將值傳遞給secondactivity。 在第二個活動中,檢索值並在textview中顯示該值。

     addView.setOnClickListener(new OnClickListener()
    {
       Intent i= new Intent("com.example.secondActivity");
      // Package name and activity
      // Intent i= new Intent(MainActivity.this,SecondActivity.Class);
      // Explicit intents
      i.putExtra("key",editext.getText().toString());//get value from editext
      // Parameter 1 is the key
      // Parameter 2 is your value
      startActiivty(i);
    });

在第二個活動中檢索它:

      Bundle extras = getIntent().();
      if (extras != null) {
       TextView tv= (TextView) findViewById(R.id.textview) 
      String value = extras.getString("key");
       //get the value based on the key 
       tv.setText(value);
      }

編輯:在第二個活動中,您可以執行以下類似操作

second.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="74dp"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:layout_width="fill_parent"
    android:id="@+id/ll"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="157dp"
    android:orientation="vertical" >

  </LinearLayout>

 </RelativeLayout>

第二活動

    public class SecondActivity extends Activity{


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
    Bundle extras = getIntent().getExtras();
    if(extras!=null)
    {
        TextView tv= new TextView(this);
        tv.setText(extras.getString("key").toString());
        ll.addView(tv);
    }
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM