0

많은 조각이있는 주요 활동이 있으며 그 중 하나에는 목록보기가 포함되어 있으며 어댑터는 homeworkListAdapter이고이 어댑터는 homeworkItems에있는 항목을 모두 표시합니다. 내 활동이 다른 활동을 열어 (HomeworkAddActivity, 사용자로부터 문자열을 가져오고 배열 homeworkItems에 넣습니다.이 모든 작업은 독립적으로 각 단계를 검사했기 때문에 가능합니다. 그러나이 새 항목으로 목록보기를 업데이트하려고하면 .notifyDataSetChanged)은 업데이트하지 않습니다, 나는 도와주세요 ~ 4 시간 동안이 문제를 해결하기 위해 노력하고있다.사용자가 활동에 응답 할 때 내 목록보기가 업데이트되지 않습니까?

코드

MainActivity

public static ArrayAdapter<String> homeworkListAdapter; 

public static ArrayList<String> homeworkItems; 

    .... 

protected void onCreate(Bundle savedInstanceState) { 
.... 
homeworkItems = new ArrayList<String>(); 

homeworkListAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, homeworkItems); 
.... 

public static class HomeworkListViewFragment extends Fragment { 

.... 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(
       R.layout.fragment_homework_listview, container, false); 

     homeworkListView = (ListView) rootView 
       .findViewById(R.id.homework_listview); 

     homeworkListView.setAdapter(homeworkListAdapter); 

     return rootView; 
    } 

HomeworkAddActivity

public class HomeworkAddActivity extends ActionBarActivity { 

.... 

public void buttonAddHomework(View v) { 
    NavUtils.navigateUpFromSameTask(this); 
    EditText editText = (EditText) findViewById(R.id.text_new_homework_name); 
    String homeworkItem = (String) editText.getText().toString(); 
    if (!(TextUtils.isEmpty(homeworkItem))) { 
     //MainActivity.homeworkList.addItem(homeworkItem); 
     MainActivity.homeworkItems.add(homeworkItem); 
     MainActivity.homeworkListAdapter.notifyDataSetChanged(); 
    } 
} 
} 
+0

buttonAddHomework()에 완전히 다시 추가하려고합니다. 때때로 NotifyDataSetChanged()는 알려지지 않은 이유로 작동하지 않을 것입니다 ... – Stan

+0

다른 코드로 시도했습니다. 그러나 다시 시도 할 것입니다. 그러나 훨씬 더 깔끔하게/올바르게 수행되었습니다. – ollie299792458

+0

다시 제안한 것을 시도했지만, 그것도 여전히 목록을 업데이 트하지 못했습니다 – ollie299792458

답변

0

당신은 체크 같이 만들 수 있습니다 :

if (!TextUtils.isEmpty(homeworkItem)) { 
Toast.makeText(getBaseContext(),"ADDING AN ITEM!!!",Toast.LENGH_SHORT).show() 
    homeworkItems.add(homeworkItem); 
    homeworkListAdapter.notifyDataSetChanged(); 
} 

그냥이 검사를 통과해야 할 수 있습니다. 그것은 않는 경우

if (!TextUtils.isEmpty(homeworkItem)) { 
     homeworkItems.add(homeworkItem); 
homeworkListAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, homeworkItems); 
homeworkListView.setAdapter(homeworkListAdapter); 
    } 

UPDATE
내가 당신의 목록보기 가정 매우 마지막 시도 (그리고 당신이 토스트를 볼 수 있습니다 것은) 속성 안드로이드가 있습니다 높이 "wrap_content"로 설정 -을 변경하려고 :) "match_parent"로 업데이트 :하지만 업데이트를 볼 수는 없지만 스크롤을 시도하십시오.) 그리고 이것이 맞다면 notifyDatasetChanged()

+0

여전히 작동하지 않습니다. 두 가지 작업을 모두 수행했습니다 (첫 번째 작업에서는 축배를 보여줍니다) – ollie299792458

+0

내 업데이트를 확인하십시오 – Stan

+0

업데이트를 시도했지만 여전히 작동하지 않았습니다. 어떤 점에서보다 철저하게 제안을 시도하십시오 – ollie299792458