2016-11-23 8 views
0

タブがクリックされたときに呼び出されるフラグメントクラスがあります。フラグメント内のデータベースリストビューにデータを挿入しても、自動リフレッシュは行われません。リストビューは、アプリケーションを再オープンする場合、または他のタブを切り替えた後にのみ現在のタブが開いている場合のみリフレッシュされます。現在のフラグメントのリストビューを自動更新するのを手伝ってください。データがデータベースに挿入されたときのフラグメント内の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(); 
} 
関連する問題