まず、私は Erlang のバックグラウンドを持っており、Android と Java プログラミングは初めてであることを告白することから始めましょう... 正直なところ、オブジェクト指向は頭を悩ませています。:)
粘着性のある古い栗に問題があります:「非静的メソッドへの静的参照を作成できません」。基本的に、サーバーから XML を受信し、それを使用してユーザーが入力するフォームを作成するアプリを作成しています。XML を正常に解析し、フォームを作成 (および表示) することができました。後で再作成できる (非常に) 単純なアルゴリズムを使用して、各 EditText フィールドに独自の ID を割り当てます。
I am busy with the submit button, which makes a HTTP post back to our server with the user entered details. My problem comes in when I try to retrieve the values that the user has entered into the form. What I am attempting to do is loop through my IDs, open each EditText instance using EditText.findViewById(ID) and retrieve its text using getText(). When i do so however I receive the error "Cannot make a static reference to the non-static method".
Now I've done some reading and the way I understand it is that this is because I am trying access a a non-static method in a static way and in order to make it static I need to call the method of an instance rather than the class in general... the problem is that I am calling it IN ORDER to get that particular instance and I can't figure out what I should be doing differently.
誰かが私のために持っている助け、アドバイス、またはさらに読んでいただければ幸いです。
乾杯、ベヴァン
psこれが私のコードの関連セクションです
private static LinearLayout renderForm(...)
{
//Build Fields
...
//Build Buttons
...
Button BT = new Button(App);
BT.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
...
for(int j = 0; j < FFListLength; j++)
{
EditText BinField = (EditText) EditText.findViewById(20000+j);
...
}
...
}
}
}
更新: JB Nizet の回答を読んだ後、自分が間違っていたことに気付きました。行を変更しました: EditText BinField = (EditText) EditText.findViewById(20000+j); to: EditText binField = (EditText) lContent.findViewById(20000+j);
ここで、lContent はビューのコンテンツです。
助けてくれてありがとう。ベヴァン