在按钮单击上添加文本字段以进入第二个主要活动

时间:2019-05-18 17:52:00

标签: java android onclicklistener

我需要添加文本字段取决于用户在数字文本字段中添加到第二个主要活动的数字。我已经有一个按钮可以打开onClick新的MainActivity,但是我还需要在第二个MainActivity中添加文本字段,具体取决于添加的数字。

我尝试在actionListeners上添加文本字段,但仍然无法正常工作。

public class MainActivity extends AppCompatActivity {

    private Button submit_textfield;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        submit_textfield = (Button) findViewById(R.id.submit_textfield);
        submit_textfield.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {
                openActivity2();


            }
        });}

    public void openActivity2() {
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);

    }
}

结果必须为:用户输入5,然后单击“提交页面重定向”并创建5个文本字段。谢谢。

2 个答案:

答案 0 :(得分:2)

  

用户输入5,然后单击“提交页面重定向”并创建5   文本字段

为此,您需要使用function empty(){ markerLong.length = 0; markerLat.length = 0 } text值传递给另一个类。 然后,您可以使用Intent中的getIntExtra来接收值。

Main2Activity

获得 public void openActivity2() { Intent intent = new Intent(this, Main2Activity.class); intent.putExtra("num",submit_textfield.getText()); startActivity(intent); } 值后,您可以根据数字动态创建num

Main2Activity

TextView

输出

enter image description here

答案 1 :(得分:1)

要实现此目的,您必须添加动态线性布局,在其中首先要在运行时添加文本视图,首先必须通过putExtra方法将该数字传递给intent。

public void openActivity2() {
        Intent intent = new Intent(this, Main2Activity.class);
        intent.putExtra("number",submit_textfield.getText().toString());
        startActivity(intent);    
    }

现在,您只需要在下一个活动中获取此值,并为此值启动一个for循环,并在线性布局中添加运行时文本视图即可。

int number =0;
if(getIntent().getExtras()!=null){
number = Integer.parseInt(getIntent().getStringExtra("number"));
}
LinearLayout ll= findViewById(R.id.ll_layout);
for (int i = 0; i < num; i++) {
    final TextView tv_text= new TextView(this);
    tv_text.setText("Value " + i);
    ll.addView(tv_text);
}

如果要将这些文本视图设置为垂直方向,则只需将参数添加到线性布局中,如下所述:

ll.setOrientation(LinearLayout.VERTICAL);