我想对点击btnSum(按钮)的编辑文本中收集值的两个数字进行求和。但当我按下按钮时没有任何反应,我甚至没有任何错误。
public class MainActivity extends ActionBarActivity {
Button btnsum,btnclear;
EditText etno1,etno2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnsum=(Button)findViewById(R.id.editText1);
btnclear=(Button)findViewById(R.id.editText2);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
try
{
btnsum.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(arg0==btnclear)
{
finish();
}
else
{
float no1 = Float.parseFloat( etno1.getText().toString());
float no2 = Float.parseFloat( etno2.getText().toString());
etno1.setText(Float.toString(no1+no2));
}
}
});
}
catch(Exception e)
{
}
}
答案 0 :(得分:0)
试试这个..
你还没有初始化EditText
etno1 和 etno2 。它应该崩溃你正在使用try catch所以'不要强迫关闭。而且你还没有使用e.printStackTrace();
,因此在logcat中不会打印错误。
尝试初始化如下
btnsum=(Button)findViewById(R.id.button1);
btnclear=(Button)findViewById(R.id.button2);
etno1=(EditText)findViewById(R.id.editText1);
etno2=(EditText)findViewById(R.id.editText2);
答案 1 :(得分:0)
在findViewById
中,buttons
与布局xml的edittext
个ID匹配,因此需要先修复它:
***Button*** btnsum,btnclear;
***EditText*** etno1,etno2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnsum=(***Button***)findViewById***(R.id.editText1***);
btnclear=(Button)findViewById(R.id.editText2);
它没有崩溃:
try
{
btnsum.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(arg0==btnclear)
{
整个代码位于try catch
。
没有任何事情发生,因为:
在onClickListener
的{{1}}内,您将btnsum
参数与view
匹配
答案 2 :(得分:0)
您已在代码中执行此操作:
btnsum=(Button)findViewById(R.id.editText1);
btnclear=(Button)findViewById(R.id.editText2);
我觉得它应该是:
btnsum=(Button)findViewById(R.id.button1);
btnclear=(Button)findViewById(R.id.button2);
和
editText1=(EditText)findViewById(R.id.editText1);
editText2=(EditText)findViewById(R.id.editText2);
正确初始化资源....
对于OnClickListener,它应该是这样的
OnClickListener sumListener = new OnClickListener() {
@Override
public void onClick(View v) {
//Your summation code goes here
}
};
btnSum.setOnClickListener(sumListener);
同样适用于btnClear
OnClickListener clearBtnListner = new OnClickListener() {
@Override
public void onClick(View v) {
//Clear code goes here
}
};
btnClear.setOnClickListener(clearBtnListner);
答案 3 :(得分:0)
Please Intialize edit text
public class MainActivity extends ActionBarActivity {
Button btnsum,btnclear;
EditText etno1,etno2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnsum=(Button)findViewById(R.id.editText1);
btnclear=(Button)findViewById(R.id.editText2);
etno1=(EditText)findViewById(R.id.edittext1);//**edittext1 name your edit text**
etno2=(EditText)findViewById(R.id.edittext2);//**edittext2 name your edit text****
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
try
{
btnsum.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(arg0==btnclear)
{
finish();
}
else
{
float no1 = Float.parseFloat( etno1.getText().toString());
float no2 = Float.parseFloat( etno2.getText().toString());
etno1.setText(Float.toString(no1+no2));
}
}
});
}
catch(Exception e)
{
}
}