我在按下“提交”按钮后尝试显示用户输入。我按下提交按钮后创建了表单并添加了基本验证代码(文本,数字,字符串长度等)。本节适用。
如果字段全部有效,我希望提交按钮在新视图中显示输入。我还想添加一个允许用户编辑其信息的功能(在显示的输入下)。我不知道从哪里开始,主要是如何从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");
}
答案 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");
希望这有帮助。