나는 항목 목록을 표시하고 사용자가 선택할 수있는 Android 응용 프로그램을 만들고 있습니다. 항목이 있지만 응용 프로그램이 항상 코드 충돌이 발생해도 충돌이 발생하면 목록을 업데이트하려고합니다. 내가 한 OnCreate 방법에 목록 어댑터를 업데이트하는 방법
을 뭐하는 거지 아래는 showArray는 하늘의 배열이며, 지금은 applciation의 작품, 내가 순간에 아래 코드adapter = new ArrayAdapter<String>(getActivity(), layout, showArray);
setListAdapter(adapter);
을 가지고있다.
다음에는 showArray에 데이터를 삽입하는 중이고 다른 방법으로 목록 어댑터를 업데이트하려고합니다.
adapter = new ArrayAdapter<String>(getActivity(), layout, showArray);
setListAdapter(adapter);
하지만 응용 프로그램이 충돌 : 나는 아래의 코드를 사용하고 있습니다. 다시 한 번
adapter = new ArrayAdapter<String>(getActivity(), layout, showArray);
adapter.notifyDataSetChanged();
하지만 운 : 나는 내 코드를 변경했습니다.
내 전체 코드는 다음과 같습니다 :
public class Fragment_AllCommunities extends Fragment {
OnHeadlineSelectedListener callBack;
// The container Activity must implement this interface so the frag can deliver messages
public interface OnHeadlineSelectedListener {
public void onCommunitySelected(int position);
}
private ProgressDialog progress;
private Activity activity;
private JSONArray communities;
private JSONObject[] commDetails;
private String[] showArray = {""};
private int layout = 0;
private ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// We need to use a different list item layout for devices older than Honeycomb
layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
android.R.layout.simple_list_item_activated_1 : android.R.layout.simple_list_item_1;
adapter = new ArrayAdapter<String>(getActivity(), layout, showArray);
setListAdapter(adapter);
}
public void updateAllCommunities(JSONObject[] commArr) throws JSONException {
commDetails = commArr;
showArray = new String[commDetails.length];
for(int i=0;i<commDetails.length;i++)
{
showArray[i] = commDetails[i].getString("name").toString();
}
//adapter = new ArrayAdapter<String>(getActivity(), layout, showArray);
//adapter.notifyDataSetChanged();
try
{
adapter.notifyDataSetChanged();
}
catch(Exception ex)
{
String s = ex.getMessage();
}
}
@Override
public void onStart() {
super.onStart();
if (getFragmentManager().findFragmentById(R.id.view_community_fragment) != null) {
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//getListView().setItemChecked(0, true);
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
callBack = (OnHeadlineSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
callBack.onCommunitySelected(position);
getListView().setItemChecked(position, true);
}
@Override
public void onResume() {
super.onResume();
String a = "S";
}
}
사람이 내가 잘못 PLS를하고있는 중이 야 무엇을 말해 줄 수? 당신은 당신의 목록보기에 업데이트 된 데이터의 어댑터를 업데이트합니다이 code.It를 넣어 목록을 업데이트하려면 미리 에서
덕분에
LogCat에서 stacktrace가 필요합니다. –
stacktrace를 질문에 추가하십시오. –
당신은 그것을 어떻게하는지 말해 줄 수 있습니까? 나는 안드로이드에서 초보자입니다. sry and thanks –