我尝试将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很新,所以我可能会看到一些明显的错误。
答案 0 :(得分:0)
您不应在firstactivity中创建textview。而是将edittext的文本作为意图中的额外内容传递给第二个活动。并在第二个活动中获取字符串,并在secondsetivity中创建textview。
检查如何在意图中传递字符串
Pass a String from one Activity to another Activity in Android