帮助调试android自定义组件EditText中的错误

时间:2011-09-28 01:24:08

标签: android

更新

使内部类'静态'修复它


请帮我看看下面的错误是什么。我在一个实现OnKeyListener的活动中有一个自定义的EditText。它被实现为Activity

的内部类

我将普通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扩展了Activity {

@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;
    }

提前致谢

1 个答案:

答案 0 :(得分:0)

使内部类'静态'修复它

还将其作为单独的类移动并使用它进行调用