我的这个程序是先生成一个随机数,然后根据这个随机数来输出不同的文字。
但是生成了随机数value之后,却不能输出对应的文字。。主要源代码如下:       value = String.valueOf((int) (Math.random() * 10+1));//生成随机数
       resultView.setText(value);//输出随机数

        go.setOnClickListener(new go());//调用下面这个类,go是个button
       
         
}
 class go  implements OnClickListener{        
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
                                    //根据随机数value的不同,explain显示不同的内容
if (value=="1"){
explain.setText(R.string.qian1);
}
else if (value=="2"){
explain.setText(R.string.qian2);
}
else if (value=="3"){
explain.setText(R.string.qian3);
}
else if (value=="4"){
explain.setText(R.string.qian4);
}
else if (value=="5"){
explain.setText(R.string.qian5);
}
else if (value=="6"){
explain.setText(R.string.qian6);
}
else if (value=="7"){
explain.setText(R.string.qian7);
}
else if (value=="8"){
explain.setText(R.string.qian8);
}
else if (value=="9"){
explain.setText(R.string.qian9);
}
else if (value=="10"){
explain.setText(R.string.qian10);
}     
}
如果我在go这个类之前,直接赋值value="1",就可以输出。请各位帮我看看是什么问题。感激不尽。

解决方案 »

  1.   

    value=="1"
    换成
    value.equal("1")value=="2"等其它表达式类似
      

  2.   

    我觉得使用"1".equal(value)保险点
      

  3.   

      把这个类改成这样试试可以吗??class go = new OnClickListener(){}
      

  4.   

    用equals(value)
    或用将value转化为int Integer.parseInt(value) 再用switch
      

  5.   

    你可能不了解吧,java的比较有多重,还有compare这样的方法,equals,他们都是有区别的
      

  6.   

    你把他转化成了字符串了 
    那就要明白字符串是应用变量  他们比较“==”的是引用地址而不是真正的值   比较的是堆中的地址是不是一样的  而不是比较栈中的值是不是一样的   
    建议你先看看java中的引用变量和java的内存分配等你就懂了   用equals()是正解
      

  7.   

    建议楼主查一下== 和equals的区别。简单的说==比较的是内存地址 是不是同一个内容,equals是比较是否相同,楼主比较的是string 建议楼主自己好好查下吧。这样自己掌握比较牢固些。还有string的创建,建议楼主好好看看。
      

  8.   

    不说别的,就你这个代码,用equal和==都能取得你想实现的效果。我担心的是你的onClick方法并没有被执行。