0

我希望editText在第二个片段中具有onClickListener其他操作,例如对话任务。

但是当我在按钮setListenerEditText或也在按钮上时,我的程序崩溃了。

例外是:NullPointerExceptions
有可能看不到布局???如果是,为什么?

我有 3 个选项卡布局和 1 个布局,例如寻呼机,我在寻呼机的活动中执行此操作。

'name' 是我的编辑文本

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

        Bundle args = getArguments();
        int position = args.getInt(ARG_OBJECT);

        int tabLayout = 0;
        switch (position) {
        case 0:
            tabLayout = R.layout.priority_fields;
            break;
        case 1:
            tabLayout = R.layout.authors_fields;
            name.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub  
                    ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(FILL_PARENT, WRAP_CONTENT);
                    ll.setLayoutParams(params);
                    ll.addView(name);
                    ll.addView(surname);
                    authors.addView(ll);
                }
            });
            break;

在此处输入图像描述

4

1 回答 1

0

问题是您没有以您的方式访问 EditText。所以你在这里得到一个 NPE,因为应用程序正在查看错误的资源。

我通常会在片段中保留对我的视图的引用,因此我总是可以访问正确的小部件:

private View mContentView = null;

public View onCreateView {
    LayoutInflater inflater = getActivity().getLayoutInflater();
    mContentView = inflater.inflate(R.layout.dialog_disclaimer, null);
    builder.setView(mContentView);
}

现在,当我想在片段中的其他地方使用 EditText 时,可以这样做:

@Override
public void onActivityCreated(Bundle arg0) {
    super.onActivityCreated(arg0);

    bAccept = (Button) mContentView.findViewById(R.id.accept_disclaimer);
    etName = (EditText) mContentView.findViewById(R.id.name);

    bAccept.setOnClickListener(this);
    etName.setOnClickListener(this);
}
于 2013-10-31T10:53:13.387 回答