gpt4 book ai didi

java - Android 空指针异常 ListFragment

转载 作者:行者123 更新时间:2023-12-01 22:15:19 24 4
gpt4 key购买 nike

我不知道如何修复我遇到的空指针异常。 mButton.setText("Hi"); 是触发它的原因。我尝试过查看其他问题,但未能使其发挥作用。这是我的代码:

ContactsTab.java

public class ContactsTab extends ListFragment implements LoaderCallbacks<Cursor> {

private CustomAdapter mAdapter;
private Cursor mCursor;
private String currentQuery;
private Button mButton;
private static final String[] PROJECTION = {
Contacts._ID,
Contacts.DISPLAY_NAME_PRIMARY,
Contacts.LOOKUP_KEY,
Contacts.PHOTO_THUMBNAIL_URI,
Contacts.HAS_PHONE_NUMBER,
};
private static final String[] FROM = { Contacts.DISPLAY_NAME_PRIMARY };
private static final int[] TO = { R.id.contact_text };
private static final String SELECTION = "(" + Contacts.IN_VISIBLE_GROUP + " = 1) AND (" + Contacts.HAS_PHONE_NUMBER + " != 0 )";



@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);

View v =inflater.inflate(R.layout.contacts_tab, container, false);
mButton = (Button) v.findViewById(R.id.badge);
mButton.setText("Hi");
return v;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mCursor = null;
mAdapter = new CustomAdapter(getActivity(), R.layout.contacts_list_item, mCursor, FROM, TO, 0);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
setListAdapter(mAdapter);
getLoaderManager().initLoader(0, null, this);
getListView().setDivider(null);
getListView().setDividerHeight(0);
}

...

}

contacts_tab.xml

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

contacts_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:background="@color/white">

<Button
android:id="@+id/badge"
android:background="@drawable/circle_button"
android:fontFamily="sans-serif-thin"
android:textSize="24sp"
android:textColor="@color/white"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:gravity="center"/>

<TextView
android:id="@+id/contact_text"
android:layout_width="match_parent"
android:layout_height="64dp"
android:textColor="@color/grey_dark"
android:textSize="20sp"
android:fontFamily="sans-serif-thin"
android:gravity="center_vertical"/>
</LinearLayout>

最佳答案

通过代码

View v =inflater.inflate(R.layout.contacts_tab, container, false);
mButton = (Button) v.findViewById(R.id.badge);
mButton.setText("Hi");

您正在尝试获取 Button,它是 contacts_tab.xml 的一部分,但在此 xml 中您没有任何按钮。

您的适配器列表项中有按钮,您需要使用适配器来引用该按钮。

关于java - Android 空指针异常 ListFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31190799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com