【发布时间】:2017-08-08 03:34:09
【问题描述】:
我正在尝试创建与 firebase 的聊天,尝试将添加的用户添加到朋友 ListView,但是当我放入 .setAdapter() 时,它说我在 .setAdapter 行上有一个 java.lang.NullPointerException。
package studio.brunocasamassa.superchat.fragments;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.google.firebase.database.DatabaseReference;
import java.util.ArrayList;
import studio.brunocasamassa.superchat.R;
import static android.R.layout.activity_list_item;
import static android.R.layout.simple_list_item_2;
/**
* A simple {@link Fragment} subclass.
*/
public class ContatosFragment extends Fragment {
private ListView listview_nomes;
private ArrayList<String> arraylist_nomes;
private ArrayAdapter<String> adapter_nomes = null;
private DatabaseReference firebaseDatabase;
public ContatosFragment() {
// Required empty public constructor
}
public String insertContact(String nomeContato) {
arraylist_nomes = new ArrayList<String>();
arraylist_nomes.add(nomeContato);
adapter_nomes = new ArrayAdapter<String>(getContext(),
android.R.layout.simple_list_item_2,
android.R.id.text2,
arraylist_nomes);
return nomeContato;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (adapter_nomes == null) {
insertContact("teste");
}
listview_nomes = (ListView) getActivity().findViewById(R.id.ListContatos);
System.out.println(adapter_nomes);
> the problem:
listview_nomes.setAdapter(adapter_nomes);
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_contatos, container, false);
}
}
我在另一个类中调用 insertContact 方法,如下所示:
Contato contato = new Contato();
contato.setidUser(idContact);
contato.setEmail(emailContact);
contato.setNome(usuarioContato.getNome());
ContatosFragment contact = new ContatosFragment();
contact.insertContact(usuarioContato.getNome());
System.out.println("nome usuario: "+usuarioContato.getNome());
我不知道如何解决它,如果有人知道, 谢谢
更新
我只是更改了我的 insertContact 方法(因为问题看起来像是其中的 ArrayAdapter 变量):
public String insertContact(String nomeContato) {
arraylist_nomes = new ArrayList<String>();
arraylist_nomes.add(nomeContato);
System.out.println("nomes_array: " + arraylist_nomes);
adapter_nomes = new ArrayAdapter<String>(
getContext().getApplicationContext(),
android.R.layout.simple_list_item_2,
android.R.id.text2,
arraylist_nomes);
return nomeContato;
}
【问题讨论】:
-
请发布您的异常堆栈跟踪。您的 fragment.contatos.xml 也可能有用。
-
您的
listview为空,请检查以下答案..
标签: android listview arraylist nullpointerexception android-arrayadapter