将新侦听器添加到自定义TextView

时间:2015-01-21 10:00:57

标签: android textview onclicklistener android-custom-view

如何为此文本视图创建侦听器? 我尝试创建自定义文本视图,但当我将其注册到新的侦听器时,孔程序会崩溃。

这是扩展类和xml代码的代码。程序崩溃的行以粗体显示。

public class CustomTextView extends TextView{   

    class Layout
    {
        public Layout()
        {
            thisTextView = (TextView)findViewById(R.id.thisTextView);
        }
        TextView thisTextView;
    }

    class Events
    {
        public Events()
        {
            l.thisTextView.
            setOnClickListener(
                    new OnClickListener() {   **// this is where the program collapse**
                @Override
                public void onClick(View v)
                {
                    l.thisTextView.setText("Work!");
                }
            });
        }
    }
    Layout l;
    Events e;
    Context ctx;

        public ChordCustumeTextView(Context context)
        {
            super(context);

            ctx = context;
            l = new Layout();
            e = new Events();
        }

        public void onClick(View v)
        {
            l.thisTextView.setText("Work!");
        }
}

xml -

 <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/thisTextView"
    android:clickable="true">
</TextView>

1 个答案:

答案 0 :(得分:0)

根据您提供的代码,当您致电Layout l时,null l.thisTextView.setText("Work!");清晰可见。

因此,在调用任何方法之前,您必须先初始化l