Java Android应用程序过早退出
我是使用JAVA开发android的新手,我对自己创建的一个简单应用程序有意见。(请不要嘲笑它!) 它所要做的就是在可编辑的文本视图中显示一个数字;此主要活动上的三个按钮是+、-和重置。超级简单,对吧?我不知道我做错了什么,但每次我运行应用程序进行测试,然后单击任何按钮,它就会退出应用程序并返回android主屏幕。不知道我做错了什么。。。但这是我目前掌握的代码:Java Android应用程序过早退出,java,android,Java,Android,我是使用JAVA开发android的新手,我对自己创建的一个简单应用程序有意见。(请不要嘲笑它!) 它所要做的就是在可编辑的文本视图中显示一个数字;此主要活动上的三个按钮是+、-和重置。超级简单,对吧?我不知道我做错了什么,但每次我运行应用程序进行测试,然后单击任何按钮,它就会退出应用程序并返回android主屏幕。不知道我做错了什么。。。但这是我目前掌握的代码: public class Main extends Activity { protected void onCreate(B
public class Main extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn_Plus;
Button btn_Minus;
Button btn_Reset;
final EditText sCount= (EditText) findViewById(R.id.txtCount);;
btn_Plus=(Button)findViewById(R.id.btnPlus);
btn_Minus=(Button)findViewById(R.id.btnMinus);
btn_Reset=(Button)findViewById(R.id.btnReset);
//One way I tried to work it
btn_Plus.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//gets the text in the textview, makes it a string,
//converts it to an int, calculates, then puts it
//back.
String iCounter = sCount.getText().toString();
int iCount = Integer.parseInt(iCounter);
iCount += 1;
Integer.toString(iCount);
sCount.setText(iCount);
}
});
//The second way I tried -- neither way works.
bM.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int iCount = Integer.parseInt(sCount.getText().toString());
iCount -= 1;
if(iCount >0)
iCount = 0;
Integer.toString(iCount);
sCount.setText(iCount);
}
});
bR.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int iCount = 0;
Integer.toString(iCount);
sCount.setText(iCount);
}
});
}
}
非常感谢 请改用文本视图,除非您计划允许用户直接输入号码(您似乎没有这样做)。与其通过文本操作来获取数字,不如将数字存储为成员变量,在按下按钮时进行更新,并相应地更改文本?我会这样写:
public class Main extends Activity {
int count = 0;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView) findViewById(R.id.txtCount);
findViewById(R.id.btnPlus).setOnClickListener(this);
findViewById(R.id.btnMinus).setOnClickListener(this);
findViewById(R.id.btnReset).setOnClickListener(this);
}
private void updateText() {
String text = Integer.toString(count);
textView.setText(text);
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.btnPlus:
count++;
break;
case R.id.btnMinus:
count--;
break;
case R.id.btnReset:
count = 0;
break;
}
updateText();
}
}
Post logcat和main.xml我在哪里可以找到logcat?在Eclipse:Window->Show View->logcat中。它将显示在屏幕的底部。当你的应用程序崩溃时,你会看到一堆错误(红色)。为了简化一些,你可以使用
String.valueof(iCount)
而不是将字符串
解析为整数
值,然后再次返回到字符串。此外,您还可以在setContentView()
之后初始化时声明按钮。例如:按钮btn\u Plus=(按钮)findViewById(R.id.btnPlus)代码>