2016-11-23 73 views
0

我有一個片段類,在單擊該選項卡時被調用。將數據插入數據庫中的listview後,片段不會自動刷新。如果重新打開應用程序,或僅在切換其他選項卡後纔打開當前選項卡,則列表視圖纔會刷新。幫助我自動刷新當前片段的列表視圖。當數據插入到數據庫中時自動刷新ListView中的片段

SocialFragment.java

 package layout; 
     import android.content.Context; 
     import android.database.Cursor; 
     import android.os.Bundle; 
     import android.support.annotation.Nullable; 
     import android.support.v4.app.Fragment; 
     import android.view.LayoutInflater; 
     import android.view.View; 
     import android.view.ViewGroup; 
     import android.widget.BaseAdapter; 
     import android.widget.ListView; 
     import android.widget.SimpleCursorAdapter; 
     import android.widget.TextView; 

     import com.example.kiran.herau.NewDatabaseAdapter; 
     import com.example.kiran.herau.R; 


public class SocialFragment extends Fragment { 

    protected BaseAdapter mAdapter; 
    private SimpleCursorAdapter dataAdapter; 
    NewDatabaseAdapter vivzHelper; 
    TextView text; 

    Context context; 

    @Nullable 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
     View view = inflater.inflate(R.layout.activity_fifth, null); 

ListView lb = (ListView)view.findViewById(R.id.listView1); 
     context = getActivity().getBaseContext(); 
     vivzHelper = new NewDatabaseAdapter(getActivity()); 
     Cursor cursor = vivzHelper.fetchAllData(); 

     // The desired columns to be bound 
     String[] columns = new String[]{ 

       NewDatabaseAdapter.NewDatabaseHelper.UID, 
       NewDatabaseAdapter.NewDatabaseHelper.TEACHER_NAME, 
       NewDatabaseAdapter.NewDatabaseHelper.SUBJECT_NAME, 
       NewDatabaseAdapter.NewDatabaseHelper.START_TIME, 
       NewDatabaseAdapter.NewDatabaseHelper.END_TIME, 

     }; 

     // the XML defined views which the data will be bound to 
     int[] to = new int[]{ 
       R.id.uid, 
       R.id.date, 
       R.id.time, 
       R.id.subject, 
       R.id.end_time, 
     }; 

     // create the adapter using the cursor pointing to the desired data 
     //as well as the layout information 

     dataAdapter = new SimpleCursorAdapter(
       context, R.layout.routinerow, 
       cursor, 
       columns, 
       to, 
       0); 

     lb.setEmptyView(view.findViewById(R.id.empty)); 
     dataAdapter.notifyDataSetChanged(); 
     // Assign adapter to ListView 
     lb.setAdapter(dataAdapter); 

     return view; 
    } 

} 

回答

0

,如果你的代碼告訴你當數據庫被更新,你可以叫

adapter.notifyDataSetChanged(); 

像 -

public void methodThatIsCalledWhenDatabaseUpdates(Datatype data){ 
    adapter.setData(data); 
    adapter.notifyDataSetChanged(); 
} 
相關問題