【问题标题】:How to make button change activity and create a new textview in android studio?如何在 android studio 中进行按钮更改活动并创建新的 textview?
【发布时间】:2017-09-25 02:20:15
【问题描述】:

我正在尝试制作一个更改为另一个活动的 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很陌生,所以可能有一些我看不到的明显错误。

【问题讨论】:

    标签: java android xml android-layout


    【解决方案1】:

    你不应该在 firstactivity 中创建文本视图。而是将edittext的文本作为意图中的附加内容传递给第二个活动。并在第二个活动中获取字符串并在第二个活动中创建文本视图。

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

    Pass a String from one Activity to another Activity in Android

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 2020-05-04
      相关资源
      最近更新 更多