回调出现Listener空指针

intoSunshine 2018-12-30 12:53:33
我想实现一个简单的回调方法的实例,可是明明Listener已经设置了值,但为什么报空指针

我的例子很简单,在activity的布局里静态价加载fragment,获取fragment中editext的值后设置activity中的textview,通过监听fragment中的按钮回调
这是activity中的代码:
[code=javapublic class HelloWorldActivity extends AppCompatActivity {

private TextView mTvTitle;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);

mTvTitle = findViewById(R.id.tv_title);
BlankFragment fragment = new BlankFragment();
fragment.setListener(new BlankFragment.BtnClickListener() {
@Override
public void onClick(View view, EditText editText) {
mTvTitle.setText(editText.getText().toString().trim());
}
});


}
}][/code]
这是fragment中的代码:
public class BlankFragment extends Fragment implements View.OnClickListener{

private EditText mEtInput;
private Button mBtnSend;
private BtnClickListener listener ;
private static final String TAG = "BlankFragment";

public BlankFragment() {

}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View view = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_blank,container,false);
mEtInput = view.findViewById(R.id.et_input);
mBtnSend = view.findViewById(R.id.btn_send);

mBtnSend.setOnClickListener(this);

return view;
}



@Override
public void onClick(View v) {

switch (v.getId()){
case R.id.btn_send:
Log.e(TAG, "onClick:===================== "+listener );
getListener().onClick(v,mEtInput);
break;
}
}

public void setListener(BtnClickListener listener) {
this.listener = listener;
Log.e(TAG, "setListener: ============================="+listener );
}

public BtnClickListener getListener(){
return listener;
}

public interface BtnClickListener {
public void onClick(View view, EditText editText);
}
}

已经知晓setListener之后,listener不为空,可是监听事件中的listener会为空
报错内容: Process: com.example.administrator.helloworld, PID: 13063
java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.administrator.helloworld.BlankFragment$BtnClickListener.onClick(android.view.View, android.widget.EditText)' on a null object reference
报错地点:getListener().onClick(v,mEtInput);
...全文
73 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,504

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧