2012-02-09 2 views
0

Я хочу иметь набор кнопок, и фокус на кнопках должен периодически меняться, я хочу попробовать с помощью 2 кнопок. Это мой файл main.xml.Android auto focus change

<?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, правый и все другие варианты, но я получаю время выполнения исключение. ориентация устанавливается как по вертикали в линейном layout.Please помочь мне разобраться с этой проблемой, если кто-нибудь знает, как установить опцию таймера, а также разместить его здесь

здесь код

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

что RuntimeException? можете ли вы разместить StackTrace здесь? –

+0

Ребята, пожалуйста, ответьте на мой вопрос как можно скорее, это было бы очень полезно, потому что это необходимо для моего проекта ... –

+0

@Marek sebera: Это NULL указатель Исключение –

ответ

0

Проблема что вы находите элемент управления в mybtn. Внутри своей деятельности вы должны вызвать focusSearch в контексте Activity. Попробуйте следующее:

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