Android自动对焦更改

时间:2012-02-09 10:18:55

标签: android

我希望有一组按钮,按钮的焦点应该定期更改我想用2个按钮尝试它。这是我的main.xml文件。

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_width="fill_parent"    
    android:layout_height="fill_parent"    
    android:orientation="vertical" >    

    <Button    
       android:id="@+id/number_button"    
       android:layout_width="wrap_content"    
       android:layout_height="wrap_content"   
       android:layout_gravity="center"    
       android:layout_weight="0.72"    
       android:focusable="true"      
       android:gravity="center"    
       android:text="@string/number"    
       android:textSize="10pt" android:clickable="true"  
       android:focusableInTouchMode="true"/>   

  <Button  
       android:text="@string/contact"    
       android:textSize="10pt"    
       android:layout_width="wrap_content"    
       android:layout_height="wrap_content"  
       android:id="@+id/contact_button"  
       android:layout_weight="1" android:layout_gravity="center"   
       android:focusable="true" android:gravity="center"  
       android:focusableInTouchMode="true"/>    

</LinearLayout>  

在源代码中我使用了FOCUS_LEFT,RIGHT和所有其他选项,但我得到了一个运行时异常。方向在线性布局中设置为垂直。请帮助我解决这个问题,如果有人知道如何设置计时器选项以及在此处发布

这是代码

package com.example.helloandroid;

import android.app.Activity;  

import android.os.Bundle;  

import android.util.Log;  

import android.view.View;  

import android.widget.Button;  

public class HelloandroidActivity extends Activity {  

    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        // Object o=null;  
        // o.toString();  
        // TextView tv = new TextView(this);  
        // tv.setText("Hello Andriod");  

        setContentView(R.layout.main);
        Button mybtn= (Button)findViewById(R.id.number_button);
        mybtn.requestFocus();

        try
        {
        Button mybtn2= (Button)mybtn.focusSearch(View.FOCUS_DOWN);
        mybtn2.requestFocus();

        }
        catch(Exception e)
        {

            Log.e("focus change","focus failed",e);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

问题是你在mybtn中找到了一个控件。在您的活动中,您应该在Activity上下文中调用focusSearch。试试这个:

Button mybtn2 = (Button) focusSearch(View.FOCUS_DOWN);
if (mybtn2 != null)
  mybtn2.requestFocus();