-1

Androidにスピナーを実装しようとしていますが、実行中にこの奇妙な構文エラーが発生し、解決できません。

私が書いていたコード:

public class AddContact extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_contact);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.add_contact, menu);
        return true;
    }

    Spinner spinner = (Spinner) findViewById(R.id.contact_number_array);

    //Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<CharSequence> Adapter = ArrayAdapter.createFromResource(this, R.array.phone_array, android.R.layout.simple_spinner_item);

    //Specify the layout to use when the list of choices appears
    Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}

「Adapter.setDropDownViewResource ....」を書いているときに、この奇妙なエラーが発生し、これがスタック トレースです。

 Multiple markers at this line
    - Syntax error, insert "}" to complete ClassBody
    - Syntax error, insert "enum Identifier" to complete 
     EnumHeaderName
    - Syntax error on token "Adapter", delete this token
    - Syntax error, insert "EnumBody" to complete EnumDeclaration

何が問題なのかわかりません。誰か助けてくれませんか?

4

2 に答える 2

0

Javaでは、そのメソッドの結果をフィールドに格納していない限り、クラスレベルでメソッドを呼び出すことはできませんが、クラスレベルでsetDropDownViewResourceメソッドを呼び出そうとしていAdapterます

class AddContact {
    //...
    Adapter.setDropDownViewResource(...);
}

このコードをコンストラクター、メソッド、または初期化ブロックに移動してみてください。

class AddContact {
    //...

    {//initialization block
        Adapter.setDropDownViewResource(...);
    }
    public AddContact (){//constructor
        Adapter.setDropDownViewResource(...);
    }

    void someMethod(){
        Adapter.setDropDownViewResource(...);
    }
}
于 2013-09-14T02:55:49.560 に答える
0

コードを間違った場所に配置しています。メソッドのいずれかでスピナー作業を行う必要がありますonCreateonStart

クラスコードを置き換えるだけで機能します

public class AddContact extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_contact);


    Spinner spinner = (Spinner) findViewById(R.id.scrollViewMain);   

    ArrayAdapter<CharSequence> Adapter =
            ArrayAdapter.createFromResource(this, R.array.phone_array, android.R.layout.simple_spinner_item);

    // Specify the layout to use when the list of
    // choices appears
    spinner.setAdapter(Adapter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.add_contact, menu);
        return true;
    }

}
于 2013-09-14T02:57:31.487 に答える