我正在尝试打开我的计算器和值,然后我在这里完成的是我的页面代码(其中主要内容是显示我如何尝试获得结果)
TextView.OnClickListener listener = new TextView.OnClickListener()
{
public void onClick(View v)
{
startActivityForResult(new Intent("com.easyPhys.start.calculator"), 1);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1)
{
Toast.makeText(this, "Pass", Toast.LENGTH_LONG).show();
}
}
这就是我尝试从calculator.java中提供结果的方法:
mClickListener = new ButtonClickListener();
int idList[] = { R.id.button0, R.id.button1, R.id.button2,
R.id.button3, R.id.button4, R.id.button5, R.id.button6,
R.id.button7, R.id.button8, R.id.button9, R.id.buttonLeftParen,
R.id.buttonRightParen, R.id.buttonPlus, R.id.buttonDone,
R.id.buttonMinus, R.id.buttonDivide, R.id.buttonTimes,
R.id.buttonDecimal, R.id.buttonBackspace, R.id.buttonClear, R.id.buttonPow, R.id.buttonSin, R.id.buttonCos,R.id.buttonTan,R.id.buttonAcos,R.id.buttonAtan,R.id.buttonAsin,R.id.buttonLog,R.id.buttonLog10,R.id.buttonComma,R.id.buttonToradians,R.id.buttonTodegrees };
for(int id : idList) {
View v = findViewById(id);
v.setOnClickListener(mClickListener);
}
private class ButtonClickListener implements OnClickListener {
@Override
public void onClick(View v) {
case R.id.buttonDone:
if(mMathString.length() > 0);
Bundle bundle = new Bundle();
bundle.putString("str", mMathString.toString());
Intent in = new Intent();
in.putExtras(bundle);
setResult(1, in);
new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
};
break;
任何人都可以帮助我了解我出错的地方,因为程序没有关闭并给出答案吗?
答案 0 :(得分:1)
您是否确认正在调用onClick方法?我问的原因是你显示了onClick的代码,但你没有通过调用setOnClickListener来显示为equals按钮设置这个代码。
答案 1 :(得分:0)
这是错误的:
startActivityForResult(new Intent("com.easyPhys.start.calculator"), 1);
您必须在构造函数中提供当前上下文并指定类名(假设您的活动类名为modernphysics5
):
startActivityForResult(new Intent(modernphysics5.this, calculator.class), 1);
编辑:
这也是错误的:
Intent in = new Intent(mMathString.toString());
setResult(1,in);
这不是Intent(String)
构造函数的正确用法。如果您想发送符合您意图的字符串,则应使用Bundle
:
Bundle bundle = new Bundle();
bundle.putString("str", mMathString.toString());
Intent in = new Intent();
in.putExtras(bundle);
setResult(1, in);
答案 2 :(得分:0)
如果需要再回答此问题,请尝试使用:CLASS_NAME.this.finish(); (CLASS_NAME是您希望从中返回的班级名称)。