为什么我的按钮会崩溃我的应用程序?

时间:2014-05-09 19:03:11

标签: android string button android-edittext oncreate

当我按下我的按钮将我的EditText信息存储到应用程序崩溃的字符串时,我遇到了问题,我无法发现任何问题,我是否设置错误而且我只是#&# 39;看到了吗?

public class Tab5 extends Activity {

Button btnGo ;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tab5);

    btnGo = (Button) findViewById(R.id.button1);


    btnGo.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) { 


            // TODO Auto-generated method stub
            EditText userid = (EditText) findViewById(R.id.editText1);
            userid.setText(2);
            Intent intent = new Intent(Tab5.this, Tab1.class);
            userid.getText().toString();
            startActivity(intent);
                        }
                    });

}
}

4 个答案:

答案 0 :(得分:1)

如果你这样做

userid.setText(2);

Android会将这个int广告视为一个resourceId,并且不会在R.java中找到它。

所以请记住将String总是传递给setText方法

userid.setText(String.valueOf(2));

userid.setText(""+2);

答案 1 :(得分:0)

使用

 userid.setText("2");

而不是

 userid.setText(2);

答案 2 :(得分:0)

您正在为EditText设置int。将int转换为String。试试this

  

使用+,字符串连接运算符:

ed = (EditText) findViewById (R.id.box);
int x = 10;
ed.setText(""+x);
     

或使用String.valueOf(int)

ed.setText(String.valueOf(x));
     

或使用Integer.toString(int)

ed.setText(Integer.toString(x))

答案 3 :(得分:0)

您可以将?id =分配给变量

public final static String URL = "outputapps.com/build/infoview.php?id=";

然后可以连接EditText值,但正如你所说,你需要2作为默认值,如果它包含任何文本,我们必须先检查EditText。这是Tab5

Intent intent = new Intent(Tab5.this, Tab1.class);
String edit = userid.getText().toString();
String myURL = null;
if(edit != null && edit.length > 0){
    myURL = edit;
}else{
    myURL = "2";
}
intent.putExtra("EXTRA_URL", myURL);
startActivity(intent);

然后加载URL在Tab1中执行此操作,

String myURL = getIntent().getStringExtra("EXTRA_URL");
webView.loadUrl(YourActivity.URL + myURL);

我知道上面的内容可以写成更少的行,但我希望这很清楚。如果您需要进一步解释,请告诉我。