Java AdapterHandler-抽象类空指针异常

Java AdapterHandler-抽象类空指针异常,java,android,Java,Android,我的ListView自定义适配器中有onClickListener holder.name.setText(dataModelList.get(position).getRadio_name()); final ViewHolder finalHolder = holder; holder.name.setOnClickListener(new View.OnClickListener() { @Override public void onC

我的ListView自定义适配器中有onClickListener

 holder.name.setText(dataModelList.get(position).getRadio_name());

    final ViewHolder finalHolder = holder;
    holder.name.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            if(adapterhandler !=null) {
                adapterhandler.updateText(dataModelList.get(position).getRadio_name());
            }

            if(!mRadioManager.isPlaying()) {

                mRadioManager.connect();
                mRadioManager.startRadio(dataModelList.get(position).getRadio_url());

            }
            else
            {
                mRadioManager.stopRadio();
            }

        }
    });
然后我创建了一个抽象类来更新TextView

    public abstract class InterfaceUpdate
{ 公共void updateText(字符串文本){} }

和片段中的侦听器以更新TextView:

 @Override
public void onRadioStarted() {

    adapter.adapterhandler = new InterfaceUpdate() {
        @Override
        public void updateText(String text) {

            super.updateText(text);
            title.setText(text);

        }
    };
我有什么问题?我做不到

adapterhandler.updateText(dataModelList.get(position.getRadio_name())

不检查它是否为null,因为它是generate NullPointerException
当我第一次单击列表元素时,TextView并没有改变,第二次是完全改变…;/您知道如何不使此adapterhandler为空吗?

问题是,直到您第一次尝试调用updateText之后,才创建adapterhandler。(只有
mRadioManager.startRadio
调用onRadioStarted()回调后才会调用它)

试试这个(尽管在onClick中构造处理程序不是一个好的设计)

并更改已启动的收音机:

@Override
public void onRadioStarted() {
     mRadioManager.startRadio(dataModelList.get(position).getRadio_url());
};

为什么要调用super.updateText(text)?你知道它什么都不做。它只是垃圾代码,只是被删除了。。。问题是,我在广播播放时调用此updateText,但第一次不播放时;)说真的,我不知道该把它放在哪里,它应该在单击列表中的元素时更新(TextView),我不能把它放在onCreate中,等等,因为它将是空的。六羟甲基三聚氰胺六甲醚。。。现在,当我第一次点击时,并没有什么要做的,TextView并没有更新。第二次单击,处理程序和文本不为空,收音机正在播放,所以它的更改正确。
@Override
public void onRadioStarted() {
     mRadioManager.startRadio(dataModelList.get(position).getRadio_url());
};