到现在还拿==判断两个Object ? ^^

解决方案 »

  1.   

    看起来像是
    Boolean ifTheOne = (mImageButton1.getDrawable() == getResources().getDrawable(R.drawable.red));
    这个的问题
    TextView.setText(String.valueOf(ifTheOne));
    的结果一直都是false但是怎么判断这两个drawable object 呢?
      

  2.   

    哈。sorry,java也是刚开始学,你这一说想起来了,嘿嘿,多谢啊
      

  3.   

    这个只有LZ你自己查看LOG , 看每次点击过后对应的ifTheOne变量变了没 ,而且我觉得LZ即使用这个方式 , 那种思维也有点不对。我上一段代码你看看。
    public void onClick(View view) {
    if(isClick) {
    //把图片资源转化为流,然后设置为按钮背景
    isImage = context.getResources().openRawResource(R.drawable.xxx);
            dbImage = Drawable.createFromStream(isImage, "xxx");
    button.setBackgroundDrawable(dbImage);
    isClick = false;

    } else {
    isImage = context.getResources().openRawResource(R.drawable.yyy);
    dbImage = Drawable.createFromStream(isImage, "yyy");
    button.setBackgroundDrawable(dbImage);
    isClick = true;

    }
    }
    LZ应该最好每次点击 , 改变你的那个布尔型变量 ,然后根据你的这个变量来做IF判断 , 然后再加载不同的图源
      

  4.   

    你的方法可行,但是我有两个问题
    1. 如果我改成这样子,每次点击按钮就会改变boolean的值,跟你的方法感觉很像啊
    2. 使用openRawResource以及Drawable.createFromStream与我直接使用R.id.xxx或者Drawable.setImageDrawable(getResources().getDrawable(R.drawable.red))有什么不一样的么?你的效率会更高么?这个我刚接触,不太明白,求教下最后谢谢你给的方法:)
    package irdc.EX04_02;import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageButton;public class EX04_02 extends Activity 
    {
      private ImageButton mImageButton1;
      public static boolean ifTheOne = true;  /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState)
      {
        super.onCreate(savedInstanceState);
        
        mImageButton1 = new ImageButton(this);
        mImageButton1.setImageResource(R.drawable.red);
        
        setContentView(mImageButton1);
        
        mImageButton1.setOnClickListener(new OnClickListener()
          {
            public void onClick(View v)
            {
              if(ifTheOne)
              {
                mImageButton1.setImageResource(R.drawable.yellow);
              }
              else{
                mImageButton1.setImageResource(R.drawable.red);
              }
            ifTheOne = !ifTheOne;
                
            }   
          }
          ); 
      }
    }
      

  5.   

    mTextView1.setText(String.valueOf(getResources().getDrawable(R.drawable.iconfull)));
    mTextView1.setText(String.valueOf(mImageButton1.getDrawable()));
    得到下面的值
    android.graphics.drawable.BitmapDrawable@43d1da78其中@之后的数字每次都不一致,所以导致
    mImageButton1.getDrawable().equals( getResources().getDrawable(R.drawable.red))
    返回结果一直为false