0
그래서 모든 구문 분석 사용자의 사용자 이름 목록을 가져와 목록보기 안에 표시하려고합니다. 따라서 내 응용 프로그램에서 누군가를 검색 할 수 있지만 대신이 오류 :android에서 구문 분석 사용자 목록 가져 오기
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.les20162.room8, PID: 19957
java.lang.NullPointerException: storage == null
at java.util.Arrays$ArrayList.<init>(Arrays.java:38)
at java.util.Arrays.asList(Arrays.java:155)
at com.les20162.room8.Activities.RoomatesFragment.initList(RoomatesFragment.java:171)
at com.les20162.room8.Activities.RoomatesFragment.onCreateView(RoomatesFragment.java:81)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2189)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:757)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2355)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2146)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2098)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2008)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:710)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7409)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
이 나는 사용자 목록 얻기 위해 사용하고 코드입니다 :
public class RoomatesFragment extends Fragment {
//variables
private EditText search;
private String[] users;
private ArrayList<String> listUsers;
private ArrayAdapter<String> adapter;
private ListView listView;
private OnFragmentInteractionListener mListener;
public RoomatesFragment() {
// Required empty public constructor
}
public static RoomatesFragment newInstance(String param1, String param2) {
RoomatesFragment fragment = new RoomatesFragment();
Bundle args = new Bundle();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View myView;
myView = inflater.inflate(R.layout.fragment_roomates, container, false);
listView = (ListView) myView.findViewById(R.id.listviewMoradores);
search = (EditText) myView.findViewById(R.id.search);
initList();
search.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if(charSequence.toString().equals("")){
initList();
}
else{
searchUser(charSequence.toString());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
return myView;
}
public void searchUser(String userToSearch) {
for(String user: users){
if(!user.contains(userToSearch)){
listUsers.remove(user);
}
}
adapter.notifyDataSetChanged();
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
private void initList(){
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> objects, ParseException e) {
users = new String[objects.size()+1];
if (e == null) {
for (int i = 0; i < objects.size(); i++) {
users[i] = objects.get(i).getUsername();
}
} else {
users[0] = "NONE";
}
}
});
listUsers = new ArrayList<>(Arrays.asList(users));
adapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item, R.id.user, listUsers);
listView.setAdapter(adapter);
}
}
내가 tryed 한 거의 모든하지만이 같은 오류가 계속 , 너희들은 어떤 ide를 가지고 있니? 이 문제를 어떻게 해결할 수 있습니까? 나는 안드로이드 프로그래밍에있어서 매우 익숙하다. 어떤 도움도 환영 할 것이다. :)
P.S : 영어는 나의 모국어가 아니기 때문에, 실수를해서 유감 스럽다.
이 경우 어떻게 AsyncTask를 사용할 수 있습니까? – Erick