0

私は現在Androidプロジェクトに取り組んでおり、ユーザーがダイアログテーマを使用するアクティビティで戻るボタンを押すと問題が発生します。

基本的に、アクティビティがあります。これをMyActivityと呼び、@ android:style/Theme.Holo.Dialogを使用するMyDialogという2番目のアクティビティを使用します。

MyDialogアクティビティが画面に表示されると、ダイアログでアクティビティダイアログが期待どおりに開始されますが、ユーザーが戻るボタンを押すと、ダイアログアクティビティは期待どおりに閉じますが、開始アクティビティ、つまりMyActivityは終了したように見えます。空白の画面が表示されます。

アクティビティを開始するためのフラグを設定していないので、なぜこの動作を実行しているのかわかりません。以下は、ダイアログアクティビティを開始するために使用しているコードです。

public OnItemClickListener mListView = new OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View view, int position,
            long id) {
        String selection = ((TextView)view).getText().toString();
        StringTokenizer st = new StringTokenizer(selection, "\n");
        String name = st.nextToken();
        String username = st.nextToken();
        Intent intent = new Intent(PasswordList.this, LoginSelectionManager.class);
        intent.putExtra("name", name);
        intent.putExtra("username", username);
        startActivity(intent);
    }
};

UPDATE 以下のリクエストは、MyActivityのonResumeメソッドのコードです。

@Override
public void onResume()
{
    super.onResume();
    populateListArray();
}

これが行うのは、データベースからのデータをListView配列アダプターに再移入する関数を呼び出すことだけです。以下はこのためのコードです

private void populateListArray()
{

    ArrayList<Spanned> passwords = managePasswordList.getPasswordList();
    if (passwords != null)
    {
        passwordArrayAdapter = new ArrayAdapter<Spanned>(this, 
                android.R.layout.simple_list_item_1, passwords);
        setListAdapter(passwordArrayAdapter);
        passwordArrayAdapter.setNotifyOnChange(true);
        myListView.setTextFilterEnabled(true);
    }
}
4

2 に答える 2

0

新しいアクティビティを開始するインテントのフラグを設定する必要があります。これは、intent.setFlags(Intent。...)によって実行できます。ここで、intentはインテントオブジェクトです。詳細については、Androidのドキュメントを確認してください。

于 2012-06-24T18:28:18.517 に答える
0

両方のアクティビティのログを入力してonFinish、どちらが実際に終了するかを確認してください...ダイアログアクティビティが押し戻されて終了するのではないかと思います。

画面が空白になるということは、アクティビティがまだ終了していないことを意味します。リストビューが空であるだけです。

したがって、次に発生する質問は、パスワードリストがでnullになる理由ですonResume。本当にアダプターを設定する必要がありonResumeますか?に移動するを参照してくださいonCreate

于 2012-06-24T18:28:30.540 に答える