按下按钮后显示用户输入

时间:2011-12-14 12:45:48

标签: java android input view

我在按下“提交”按钮后尝试显示用户输入。我按下提交按钮后创建了表单并添加了基本验证代码(文本,数字,字符串长度等)。本节适用。

如果字段全部有效,我希望提交按钮在新视图中显示输入。我还想添加一个允许用户编辑其信息的功能(在显示的输入下)。我不知道从哪里开始,主要是如何从onClick操作创建一个新视图以及如何将变量发送到该视图。我需要为此创建一个新的类和XML文件吗?如果是这样,最好的方法是什么?

编辑:

    public void sendFeedback(View button) {
    final EditText firstnameField = (EditText)this.findViewById(R.id.EditTextFirstName);
    String firstname = firstnameField.getText().toString();
    int fnlen=firstname.length();
    if (fnlen<=0){
        firstnameField.setError("Enter your first name");
    }

4 个答案:

答案 0 :(得分:0)

您可以将这些用户输入字段添加到常规布局中,并将其可见性设置为android:visibility="INVISIBLE"不可见。然后,用户最初看不到它。

在代码中,您可以再次将可见性设置为VISIBLE,并显示这些视图。

findViewById(R.id.yourinvisibleview).setVisibility(View.VISIBLE);

答案 1 :(得分:0)

就我对Android开发的知识而言,你所要做的就是创建一个新的Activity并给它开始的意图。

对于将值传递给新类(Activity),您可以使用构造函数并将要传递的值分配给类的私有或公共属性(Activity)

答案 2 :(得分:0)

要将值传递给新Activity,您需要使用Intent。

Intent intent = new Intent(MyActivity.this,NextActivity.class);
intent.putExtra(key1,value1);
intent.putExtra(key2,value2);

等......

并在你的NextActivity中使用getData

getIntent().getStringExtra(key1); // for String values
getIntent().getBooleanExtra(key2,false); // for Boolean values

有关Intent Check Intents的更多信息。

答案 3 :(得分:0)

第一个解决方案: 您使用一个活动和一个xml布局。 在布局XML中,您可以添加两个按钮(EDIT et VALIDATE):

android:visibility="gone"

在SUBMIT OnClickListener中,只需使所有可编辑的EditText不可编辑,如下所示:

((EditText) findViewById(R.id.date)).setKeyListener(null);

并使按钮SUBMIT不可见,编辑和验证可见:

((Button) findViewById(R.id.submit)).setVisibility(View.GONE);
((Button) findViewById(R.id.edit)).setVisibility(View.VISIBLE);
((Button) findViewById(R.id.validate)).setVisibility(View.VISIBLE);

在编辑OnClickListener中,您还原:

KeyListener keyListener =  new KeyListener() {

                @Override
            public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onKeyOther(View view, Editable text, KeyEvent event) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onKeyDown(View view, Editable text, int keyCode,
                    KeyEvent event) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public int getInputType() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public void clearMetaKeyState(View view, Editable content, int states) {
                // TODO Auto-generated method stub

            }
        };

    ((EditText) findViewById(R.id.date)).setKeyListener(keyListener);
    ...
    ((Button) findViewById(R.id.submit)).setVisibility(View.VISIBLE);
    ((Button) findViewById(R.id.edit)).setVisibility(View.GONE);
    ((Button) findViewById(R.id.validate)).setVisibility(View.GONE);

在VALIDATE OnClickListener中,您可以进行真正的提交。

第二个解决方案: 您可以创建新活动和新布局,只显示值。您可以通过以下方式将值传递给第二个活动:

String data = "somedata";
Intent intent = new Intent(this, YourSecondActivity.class);
intent.putExtra("firstData", data);
startActivity(intent);

您可以从第二个活动中检索数据,如下所示:

Bundle extras = getIntent().getExtras();
String data = extras.getString("firstData");

希望这有帮助。