私には3つのアクティビティと1つのクラスがあります。
MobilEpostaActivity(メインアクティビティ)は、GmailサーバーからのデータをListeleActivityにインテントし(ListViewに入力して表示)、ListeleActivityはこれらのデータをListViewに入力し、アイテムがListViewをクリックすると、アイテムのクリックデータはGoruntuleActivityにインテントします(表示onclickアイテムの情報)。また、クラス「Baglantı」(接続を意味する)があり、それぞれに必要な他のすべてのメソッドがあります。
私の問題はここにあります:ユーザーが「削除」ボタンをクリックしたとき。リストビューを更新して、次のメールをユーザーに表示したいと思います。ユーザーが削除ボタンをクリックすると、位置に1を追加してユーザーに次のメールを表示できます。ただし、アタッチメントが複雑なため、正しく動作しません。
ここで、MobilEpostaActivityから始めます。ユーザーからユーザー名とパスワードを取得し、サーバーに接続するためにそれらをBaglantıクラスに渡します。次に、arraylistsのsubjectから結果の本文を取得します。次に、これらのボディを、意図的にListeleActivityから渡し、ListeleActivityの対象にします。
public void epostaListeleme() throws MessagingException, IOException
{
final Intent intent = new Intent(this, ListeleActivity.class);
intent.putStringArrayListExtra(bodylistesi ,(ArrayList<String>) getBodyList());
intent.putStringArrayListExtra(konulistesi ,(ArrayList<String>) getKonuList());
intent.putStringArrayListExtra(kimdenlistesi ,(ArrayList<String>) getKimdenList());
startActivity(intent);
}
ListeleActivity()の場合:
MobilEpostaActivitywithBundleからデータを取得します。リストビューに「from」データを入力します。そしてlistItemOnClickを待っています。Onclickアクションが発生した場合は、データをGoruntuleActivityに渡します。**
GoruntuleActivity()の場合:
ListeleActivitywithBundleからデータを取得します。そして(ここが重要な部分です)削除ボタンOnClickを待っています。オンクリックアクションが最初に発生した場合)リストビューから位置を削除します。
arrayAdapter.remove(arrayAdapter.getItem(position));
listBaglanti.RefreshedPositions(position);
arrayAdapter.notifyDataSetChanged();
2番目)ボディリスト、フロムリスト、サブジェクトリストからポジションのデータを削除します。
public void RefreshedPositions(int position)
{
list.remove(list.get(position));
kimdenlist.remove(kimdenlist.get(position));
konulist.remove(konulist.get(position));
}
3番目)これらの「変更された」リストを配列リストに保持します。
bodylistRefresh = baglan.list;
kimdenlisteRefresh = baglan.kimdenlist;
konulisteRefresh = baglan.konulist;
4番目)これらの「変更された」リストをMobilEpostaActivityのインテント(ListeleAcitivityのインテントの1つ)に設定します。
MobilEpostaActivity mobilObject = new MobilEpostaActivity();
mobilObject.setKonuList(konulisteRefresh);
mobilObject.setKimdenList(kimdenlisteRefresh);
mobilObject.setBodyList(bodylistRefresh);
あなたが思うように、プロセスは最初からやり直す必要があります。しかし、4番目のステップでは、私はそうは思わないので、ListViewを更新したため、開始されません。
たぶん私は難しい道を進んだ。しかし、リストビューを更新して次のメールを表示するための正しいことを教えていただければ幸いです。また、私のスクリーンショット。
私が最初にアプリケーションを開いたとき:Merveから3通のメールがあります。ポジション:0,1,2 *
削除ボタンをクリックした後:ListViewが更新され、position=1のアイテムが削除されます。ただし、GoruntuleActivityの画面では削除されません。