有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

设置结果为textview时出现java空指针异常

按下Computecost按钮时,应用程序正在崩溃

package com.example.hw_3;

import 安卓.os.Bundle;
import 安卓.app.Activity;
import 安卓.view.*;
import 安卓.widget.*;
import 安卓.content.*;

public class ShoppingExpensesPage extends Activity  

{
    TextView et;
    Button computecost;
    Button save;
    Button cancel;
    RadioGroup drinks;
    RadioButton drink;
    int tottalcost=0;

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        et=(TextView)findViewById(R.id.tv11);
          Bundle extra = getIntent().getExtras();
          String val1 = extra.getString("value");
          et.setText(val1);
          computecost=(Button)findViewById(R.id.btn11);
          computecost.setOnClickListener(new View.OnClickListener() 
          {
            @Override
            public void onClick(View view) 
            {
                String val;

                int selectedId = drinks.getCheckedRadioButtonId();
                drink = (RadioButton)findViewById(selectedId);
                val=(String) drink.getText();
                if(val=="Juice")
                {tottalcost=tottalcost+3;

                }
                else if (val=="Cola")
                {

                    tottalcost=tottalcost+2;

                }

                et.setText(Integer.toString(tottalcost));
            }
          });

          save=(Button)findViewById(R.id.btn21);
          save.setOnClickListener(new View.OnClickListener()
          {
            @Override

            public void onClick(View v) {
                Intent returnIntent = new Intent();
                 String  str=Integer.toString(tottalcost);//(String) et.getText();
                returnIntent.putExtra("return", str);
                 setResult(RESULT_OK,returnIntent);     
                 finish();                  
            }
          });
    }
}

共 (2) 个答案

  1. # 1 楼答案

    这是比较Strings的错误方式

    if(val=="Juice")
    

    在Java中,“==”比较Objects的引用,但不比较它们的值。你需要使用.equals()

     if("Juice".equals(val))
     {   // do something  }
    

    如果这不能解决您的问题,那么请发布错误日志,但这仍然需要更改

  2. # 2 楼答案

    您尚未设置drinks的视图

    int selectedId = drinks.getCheckedRadioButtonId();
    

    在^{之前找到它的视图:

    drinks = (RadioGroup) findViewById(...);