当我输入值时我动态创建了edittext我无法显示值的值。如果我想要添加我在编辑文本中输入的值,我怎么可能需要给出循环。
这是代码
public class NewActivity extends Activity {
LinearLayout ll;
EditText lEditText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ll=new LinearLayout(this);
ll=(LinearLayout)findViewById(R.id.my);
Button lButton = (Button)findViewById(R.id.mybtnid);
lButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
lEditText = new EditText(getApplicationContext());
lEditText.setHint("Text Here");
lEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(lEditText);
}
});
Button button1=(Button)findViewById(R.id.btn2);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
TextView tv = new TextView(getApplication());
int x=Integer.parseInt(lEditText.getText().toString());
tv.setText(x);
ll.addView(tv);
}
});
我在logcat中遇到错误:
AndroidRuntime(509): android.content.res.Resources$NotFoundException: String resource ID #0x1
E/AndroidRuntime(509): at android.content.res.Resources.getText(Resources.java:201)
E/AndroidRuntime(509): at android.widget.TextView.setText(TextView.java:2817)
E/AndroidRuntime(509): at com.app.NewActivity$2.onClick(NewActivity.java:44)
E/AndroidRuntime(509): at android.view.View.performClick(View.java:2408)
E/AndroidRuntime(509): at android.view.View$PerformClick.run(View.java:8816)
E/AndroidRuntime(509): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime(509): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(509): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(509): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(509): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(509): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(509): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(509): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(509): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
您正在将整数传递给setText。你需要传递字符串,如果你传递int,你需要传递资源ID。
所以使用
tv.setText("" + x);
而不是
tv.setText(x);
答案 1 :(得分:0)
尝试进行如下更改,以设置TextView
int x=Integer.parseInt(lEditText.getText().toString()); tv.setText(x+""); <-- Add "" to set the integer value in your textview.
<强>编辑:强>
尝试使用以下代码动态添加值:
final EditText et1=(EditText)findViewById(R.id.editText1); final EditText et2=(EditText)findViewById(R.id.editText3); Button bt=(Button)findViewById(R.id.button1); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { try { int x=Integer.valueOf(et1.getText().toString()); int y= Integer.valueOf(et2.getText().toString()); int z=x+y; System.err.println(z+""); tv.setText(z+""); } catch (NumberFormatException e) { // TODO: handle exception } } });
答案 2 :(得分:0)
如果你去here,你可以看到如何使用动态来使用组件的setId。