将intent添加到定义的布局文本视图中

时间:2013-09-19 10:51:07

标签: android android-intent android-edittext textview extras

我在应用程序的开头,我是一个绝对的业余爱好者,我想做的事情很简单。 我试图将我的第一个活动中的Extras拉到我的第二个活动的textview上 第一页:你叫什么名字? (输入名称并按下按钮) 在下一页:好的,所以你的名字是......(他们输入的名字) 我有一个答案,但有一点理解它,在我的代码中,当我点击okay按钮时,只有单词okay出现在textview而不是编辑的文本 这是我的代码......

main.java

Button ok;
EditText name;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText)findViewById(R.id.editText);
ok=(Button)findViewById(R.id.button);

ok.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        String a=ok.getText().toString();
        Intent intent = new Intent(getApplicationContext(), secondactivity.class);
        intent.putExtra("NAMEDATA",a);
        startActivity(intent);

    }
});


 }

main.xml中

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/okay_button"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:textStyle="bold|italic"
android:textSize="23sp"/>

<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editText"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignBottom="@+id/button"
android:hint="@string/text"
android:textSize="25sp"
android:textStyle="bold|italic"
android:layout_toLeftOf="@+id/button"/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:src="@drawable/start"
android:contentDescription="@string/startimage"
android:layout_below="@+id/button"
android:paddingBottom="20dp"
android:paddingTop="20dp"/>

</RelativeLayout>

secondactivity.java

public class secondactivity extends Activity {
TextView t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
t = (TextView)findViewById(R.id.textView3);
String n = this.getIntent().getStringExtra("NAMEDATA");
t.setText(n);


}

activity_second.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".SecondActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name_sent"
android:textSize="23sp"
android:id="@+id/textView2"
android:textStyle="bold|italic"/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/what_to_do"
android:id="@+id/textView"
android:layout_marginTop="13dp"
android:textSize="23sp"
android:layout_below="@+id/textView2"
android:textStyle="bold|italic"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bath_time"
android:id="@+id/button"
android:layout_marginTop="29dp"
android:layout_below="@+id/textView"
android:layout_alignRight="@+id/textView"
android:layout_alignLeft="@+id/textView"
android:textSize="25sp"
android:textStyle="bold|italic"
android:onClick="viewimage"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/school"
android:id="@+id/button2"
android:layout_below="@+id/button"
android:layout_alignRight="@+id/button"
android:layout_alignLeft="@+id/button"
android:textSize="25sp"
android:textStyle="bold|italic"/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bed"
android:id="@+id/button3"
android:layout_below="@+id/button2"
android:layout_alignLeft="@+id/button2"
android:layout_alignRight="@+id/button2"
android:textSize="25sp"
android:textStyle="bold|italic"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView3"
android:layout_alignTop="@+id/textView2"
android:layout_toRightOf="@+id/textView2"
android:layout_alignBottom="@+id/textView2"
android:paddingStart="4dp"
android:layout_alignParentRight="true"
android:textSize="23dp"
android:textStyle="bold|italic" />

</RelativeLayout>

androidmainfest.xml

<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="18" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
    android:name=".main"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".secondactivity"
    android:label="@string/title_activity_second" >
</activity>
<activity
    android:name=".bathactivity"
    android:label="@string/title_activity_bath"
    android:parentActivityName="com.example.myapplication.SecondActivity" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.myapplication.SecondActivity" />
</activity>
</application>
谁能告诉我哪里出错了?在我的onCreate方法中考虑它的任何一个Activity但是真的卡住了, 非常感谢

1 个答案:

答案 0 :(得分:1)

实际上 - 你没有从EditText小部件传递任何内容,只是从Button

传递

问题在于:

    String a=ok.getText().toString();
    Intent intent = new Intent(getApplicationContext(), secondactivity.class);
    intent.putExtra("NAMEDATA",a);

您可以以相同的方式将EditText的内容添加到此字符串的末尾。

尝试这样的事情:

String nameStr = name.getText().toString();
String a = ok.getText().toString();

Intent intent = new Intent(getApplicationContext(), secondactivity.class);
intent.putExtra("NAMEDATA",a+nameStr);