这有个简单的例子,关于onFocusChange的,我的问题是,如何让这里的imagebutton获得焦点?失去焦点很容易,在屏幕非该imagebutton的区域点一下就可以了,但怎么获得焦点呢?往imagebutton上点的话触发的是OnClickListener,不是我需要的,在pc的模拟器上可以通过滚动鼠标或按键盘的上下键让它来获得焦点,只是不知真机上该如何操作才能获得焦点,因为我记得中以前用g3时手机上是没有方向键的
package irdc.EX04_02;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
/*使用OnClickListener与OnFocusChangeListener来区分按钮的状态*/
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;public class EX04_02 extends Activity 
{
  /*声明三个对象变量(图片按钮,按钮,与TextView)*/
  private ImageButton mImageButton1;
  private Button mButton1;
  private TextView mTextView1;
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    /*通过findViewById建构三个对象*/
    mImageButton1 =(ImageButton) findViewById(R.id.myImageButton1);
    mButton1=(Button)findViewById(R.id.myButton1);
    mTextView1 = (TextView) findViewById(R.id.myTextView1);
    
    /*通过OnFocusChangeListener来应答ImageButton的onFous事件*/
    mImageButton1.setOnFocusChangeListener(new OnFocusChangeListener()
    {
      public void onFocusChange(View arg0, boolean isFocused)
      {
        // TODO Auto-generated method stub
        
        /*若ImageButton状态为onFocus改变ImageButton的图片
         * 并改变textView的文字*/
        if (isFocused==true)
        {
          mTextView1.setText("图片按钮状态为:Got Focus");
          mImageButton1.setImageResource(R.drawable.iconfull);
        }
        /*若ImageButton状态为offFocus改变ImageButton的图片
         *并改变textView的文字*/
        else 
        {
          mTextView1.setText("图片按钮状态为:Lost Focus");
          mImageButton1.setImageResource(R.drawable.iconempty);
        }
      }
    });
       
    /*通过onClickListener来应答ImageButton的onClick事件*/
    mImageButton1.setOnClickListener(new OnClickListener()
    {
      public void onClick(View v)
      {
        // TODO Auto-generated method stub
        /*若ImageButton状态为onClick改变ImageButton的图片
         * 并改变textView的文字*/
        mTextView1.setText("图片按钮状态为:Got Click");
        mImageButton1.setImageResource(R.drawable.iconfull);
      }   
    });
      
    /*通过onClickListener来应答Button的onClick事件*/
    mButton1.setOnClickListener(new OnClickListener()
    {
      public void onClick(View v)
      {
        // TODO Auto-generated method stub
        /*若Button状态为onClick改变ImageButton的图片
         * 并改变textView的文字*/
        mTextView1.setText("图片按钮状态为:Lost Focus");
        mImageButton1.setImageResource(R.drawable.iconempty);
      } 
    }); 
  }
}

解决方案 »

  1.   

    问题是点击是触发setOnClickListener啊,我也就是想问,在真机上,setOnFocusChangeListener中的if (isFocused==true)怎样才能触发
      

  2.   

    什么意思?用力点就触发setOnFocusChangeListener?轻点就触发setOnClickListener?
    可能我还没说明白,在这个程序中,点的时候触发了setOnClickListener,但没有触发
    if (isFocused==true),也就是说,没有实现
     mTextView1.setText("图片按钮状态为:Got Focus");
              mImageButton1.setImageResource(R.drawable.iconfull);
    我想问怎样在真机上实现触发以上这2行代码