0

こんにちは私はgridviewを使用したアプリに49のエディットテキストがあります。そこで、onCreate()メソッドにアダプタオブジェクトが含まれるアクティビティを作成しました。カスタムアダプタクラスでは、count=49を指定しました。したがって、49の編集テキストがグリッドビューに配置されます。

しかし、私の問題は、アクティビティが表示されたらすぐにデフォルトで編集テキストにいくつかの値を設定したいということです(編集テキストのデフォルト値はランダムに生成されるため、ヒント属性はアプリでは機能しません)。そこで、よく考えた後、アクティビティクラスで次のコードスニペットを使用してedittextsのオブジェクトを取得し、このコードを1つのメソッドに保持しました。

 int k=0;
    for(int i=0;i<editText.length;i++)
      {
        for(int j=0;j<editText.length;j++)
           {
               editText[i][j]=(EditText)gridView.getChildAt(k);
               k++;

            }
      }

ただし、このメソッドは、アクティビティが表示される前に呼び出す必要があります。初めて、このスニペットをステートメントの後にonCreate()メソッドに保持しましたgridView.setAdapter(new TextAdapter(this)); 。しかし、役に立たない、アプリケーションは力を閉じていることを示しています。後でこれをonStart()に保持しましたが、再び使用することはできません。edittextオブジェクトはまだ使用できず、強制終了を示しています。したがって、これをテストするために、アクティビティでボタンがクリックされたときに実行される1つのメソッドを保持し、その後、edittextsオブジェクトを使用できるようにしました。そのため、手動操作(ここではボタンクリック)後に値を設定したくありません。アクティビティが表示される前に値を自動的に設定したい。それでも私の問題を解決するコールバックメソッドはありますか?私はこの問題について多くの情報源を探してきましたが、ちょっと疲れました。提案してください。コードスニペットをいただければ幸いです。

4

1 に答える 1

0

しかし、私の問題は、アクティビティが表示されたらすぐに、デフォルトでエディットテキストにいくつかの値を設定したいということです。

いいえ、しません。EditTextウィジェットが表示される前に、デフォルトでウィジェットにいくつかの値を設定する必要EditTextがあります。

ただし、このメソッドは、アクティビティが表示される前に呼び出す必要があります。

呼ばれるどころか、書かれるべきではありませんでした。

しかし、役に立たない、アプリケーションは力を閉じていることを示しています。

もちろん。この時点で、EditTextウィジェットは正確にゼロになっています。

それでも私の問題を解決するコールバックメソッドはありますか?

ウィジェットがあなたの、in (または、これがの場合は)EditTextによって作成されたときに、ウィジェットにデータを入力します。定義上、ウィジェットが存在しないため、この時点より前にそれを行うことはできません。TextAdaptergetView()newView()CursorAdapterEditText

于 2012-09-12T13:07:24.127 に答える