2017-05-12 11 views
0

MainActivityにはViewPagerがあります。その中には2つのtabsと2つのfragmentsがあります。各fragmentlistviewです。 listviewアイテムをクリックすると、DetailsActivityが開きます。私はDetailsActivityからitemを削除し、私はlistviewからitemを削除する方法、MainActivityに戻ってくるリストビュー項目onresumeアクティビティを削除する方法

。あなたは、リストから項目を削除するために戻ってあなたがかもしれないDetailsActivityから来る場合は、リストビュー、

arrayAdapter.notifyDataSetChanged(); 
+0

http://stackoverflow.com/questions/5497580/how-to-dynamically-remove-items-from-listview-on-a-button-click –

+0

リストビューのデータはどこから得られますか?データベース? –

+0

データは外部のURL(json)から来ます –

答えて

0

私は私のfragmentに下記の2 methodsを追加しました。

@Override 
public void setUserVisibleHint(boolean visible){ 
    super.setUserVisibleHint(visible); 
    if (visible && isResumed()){ 
     //this allows onResume() to be called only when returning from detailsActivity. 
     onResume(); 

    } 
} 

setUserVisibleHint方法はfragmentがユーザに表示されるたびに呼び出されます。ここで

@Override 
public void onResume() 
{ 
    super.onResume(); 
    if (!getUserVisibleHint()) 
    { 
     return; 
    } 

    //this code will run only when user is returning from detailsActivity  

} 

onResume()メソッド内のコードは、detailsActivityから復帰したときにのみ実行されます。そこでここでリスト項目を削除するコードを挿入しました。

0

。私はあなたがどこかにすべてのアイテムを持つアダプタを持っていると思います。

public void deleteItem(int position){ 

    arrayList.remove(position); 
    notifyDataSetChanged(); 

} 

これはアダプタの内側です。

+1

慎重に質問をお読みください。アダプタは、ビューページの断片の中にあります。削除するインデックス番号をどのように知っていますか? –

0

を更新するには、

arrayList.remove([INDEX]); 

をリスト項目フォームアダプタを削除するには

+0

アクティビティが再開されたとき、フラグメントの内部からどのように知ることができますか? –

0

オーバーライドOnResume()、あなたはMainActivityOnResume()が呼び出されますDetailsActivityから戻ってきたとき、アダプタ

@Override 
public void onResume() { 
    super.onResume(); 
    doDeleteFromList(); 
    arrayAdapter.notifyDataSetChanged(); 

} 

に通知します。

+0

リストビューアダプタは、ビューページのフラグメント内にあります。 MainActivityからそのアダプタにアクセスする方法 –

+0

フラグメントのonResume()をオーバーライドしてください。 –

-1
String[] values = new String[] { "Android List View", 
     "Adapter implementation", 
     "Simple List View In Android", 
     "Create List View Android", 
     "Android Example", 
     "List View Source Code", 
     "List View Array Adapter", 
     "Android Example List View" 
}; 


    final ListView listView = (ListView)findViewById(R.id.listView); 

    ArrayList<String> lst = new ArrayList<String>(Arrays.asList(values)); //to prevent "java.lang.UnsupportedOperationException" 
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lst); 
    listView.setAdapter(adapter); 
    ///.. 
      //delete item from listView: 
      String itemValue = (String) listView.getItemAtPosition(position); 
      adapter.remove(itemValue); 
+0

これは質問が尋ねたことではありません。ここにはフラグメントがありません –

+0

実行したいListView要素を削除します。だから私はこれのための簡単な例を開発しました。 –

+0

まだ、質問が何を求めたのではないか。彼らは** ** **別のアクティビティから**を返すとき**の地位を得る方法 –

関連する問題