0

MainActivityにEditTextがあります。ユーザーがNewFileアクティビティをクリックすると、このアクティビティのレイアウトは透明になるため、EditTextは引き続き表示されます。NewFileアクティビティからバックグラウンドでEditTextを更新できるようにしたい。これは私が試したものであり、NullPointerExceptionが発生します。これが機能しなかった理由は理解していますが、探している結果を得るために代わりに何ができるでしょうか。

NewFile.java

protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newfile);

        newet = (EditTextLineNumbers) findViewById(R.id.ide);
        newet.setText("Testing");
    }
4

3 に答える 3

1

どのように機能すると思いましたか..?アクティビティレイアウトにないビューにどのようにアクセスしますか。それは不可能だと言うことは...

レイアウトインフレータサービスを使用して以前のレイアウトのEditTextを取得し、そこからビューを取得できます

于 2013-02-16T19:09:22.477 に答える
1

背景のEditTextは、現在ユーザーに設定されているレイアウトのものではないため、例外が発生します。

UIの更新に関しては、2つのことが必要になる可能性があります。

  1. バックグラウンドアクティビティのハンドラーを新しいアクティビティーに渡します
  2. 透過的なアクティビティではなく、ダイアログとして新しいものを作成します。
  3. ハンドラーを使用して通知を送信し、それに応じてUIを更新します
于 2013-02-16T19:11:10.970 に答える
1

NewFileアクティビティで、透明なeditTextViewをオーバーレイする編集テキストを作成し(このテキストビューの透明なBGがあり、バックグラウンドであるかのように見せかける可能性があります)、このeditTextView
を更新し
、戻ったら、このedittextからデータを取得します( setActivityForResultとそれらのメカニズムを使用して)、前のアクティビティを入力します。

于 2013-02-16T19:12:55.067 に答える