如何在android studio中进行按钮更改活动并创建新的textview?

时间:2017-04-27 10:30:01

标签: java android xml android-layout

我尝试将Button更改为另一个活动,同时使用用户输入的文本创建一个新的textView。我想出了如何只在一个活动上做到这一点(我从中得到了它:LINK)。但是,我想做同样的事情,除了我想让按钮带我去另一个活动并在那里创建一个textView。

关键在于对帐户进行概述。您转到"创建帐户页面",创建一个帐户,该帐户会显示在概述中。

这是我到目前为止所做的:

头等舱:

public class MainActivity extends AppCompatActivity {

private EditText mEditText;
private Button mButton;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mEditText = (EditText) findViewById(R.id.editText);
    mButton = (Button) findViewById(R.id.button);
    mButton.setOnClickListener(onClick());

    TextView textView = new TextView(getApplicationContext());
    textView.setText("New text");

}

private View.OnClickListener onClick() {
    return new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent buttonIntent = new Intent(MainActivity.this, 
SecondLayout.class);
            MainActivity.this.startActivity(buttonIntent);

mLayout.addView(createNewTextView(mEditText.getText().toString()));

        }
    };
}

private TextView createNewTextView(String text) {
    final LinearLayout.LayoutParams lparams = new 
LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
LinearLayout.LayoutParams.WRAP_CONTENT);
    final TextView textView = new TextView(this);
    textView.setLayoutParams(lparams);
    textView.setText("New text: " + text);
    return textView;
}
}

第二课:

public class SecondLayout extends AppCompatActivity {

public static LinearLayout mLayout;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mLayout = (LinearLayout) findViewById(R.id.linearLayout);


    final Button addAccountButton = (Button) 
findViewById(R.id.secondButton);
    addAccountButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent buttonIntent = new Intent(SecondLayout.this, 
MainActivity.class);
            SecondLayout.this.startActivity(buttonIntent);
        }
    });

}

}

第一项活动的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/firstlayout">
<EditText
    android:id="@+id/firstText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="button"
     />
</LinearLayout>

第二项活动的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/firstlayout">
<EditText
    android:id="@+id/firstText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="button"
     />
</LinearLayout>

我对android studio和java很新,所以我可能会看到一些明显的错误。

1 个答案:

答案 0 :(得分:0)

您不应在firstactivity中创建textview。而是将edittext的文本作为意图中的额外内容传递给第二个活动。并在第二个活动中获取字符串,并在secondsetivity中创建textview。

检查如何在意图中传递字符串

Pass a String from one Activity to another Activity in Android