2011-09-28 32 views
1

UPDATE帮助与Android的自定义组件的调试错误的EditText

使得内部类“静态”固定它


请帮我找出错误是在下面的情况是什么。我在一个实现OnKeyListener的活动中有一个自定义EditText。它是作为活动的内部类实现的

我重写原始TickerEditText为父EditText的原因是因为将来我可能会修改EditText,并且还希望将OnKeyListener始终附加到它。

我不想在Activity的onCreate()中做到这一点。

代码编译正常,但我遇到运行时错误,当应用程序启动并膨胀视图。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<view 
    class="com.example.android.ticker.TickerActivity$TickerEditText" 
    android:id="@+id/tickerText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="Something !!" 
/> 
<com.example.android.ticker.customListView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tickerListView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@style/customListView" 
    android:scrollbars="vertical" 
    android:listSelector="@drawable/list_selector" 
/> 
</LinearLayout> 

用法 公共类TickerActivity延伸活动{

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.ticker); 

    /** Get Reference to UI objects */ 
    mTickerListView = (TickerListView)findViewById(R.id.tickerListView); 
    mTickerEditText = (EditText)findViewById(R.id.tickerText); 
    ... 
} 

... 
... 
... 
... 

public class TickerEditText extends EditText implements OnKeyListener { 

    public TickerEditText(Context context) { 
     super(context); 
    } 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 

     if(event.getAction() == KeyEvent.ACTION_DOWN) 
      if(keyCode == KeyEvent.KEYCODE_ENTER) { 
       //something 
       return true; 
      } 
     return false; 
    } 

预先感谢

+0

即使使它静态固定它,你应该真的将该类移动到它自己的java文件。 – dmon

+0

@dmon - Yeap你是对的,我正要这样做,只是想知道是否可以像内部班级那样好,并且因为它不起作用,所以就深究其中的原因。谢谢。 – devgp

回答

0

使内部类 '静态' 固定它

也移动它作为一个单独的类和称之为