0
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Spinner;
import android.widget.ArrayAdapter;
import android.app.Activity;
import java.lang.String;

public class MainActivity extends AppCompatActivity {
    private Spinner spinner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.adminsignup);
        spinner dropdown = (Spinner)findViewById(R.id.selectbranch);
        String[] items = new String[]{"CSE", "EC", "IT","EN","EDT","CIVIL","EE","IND","MECH","MBA","MCA","CLUB"};

        ArrayAdapter<String> adapter = new ArrayAdapter< >(this, android.R.layout.simple_spinner_dropdown_item, items);
        dropdown.setAdapter(adapter);    
    }   
}

错误在于.setAdapter它是红色的。我已经尝试了所有可能的方法,甚至尝试更改thisthis.getActivity()但无济于事。

4

1 回答 1

0

实际上,错误在这一行:

spinner dropdown = (Spinner)findViewById(R.id.selectbranch);

因为您尝试声明“spinner”类型的“dropdown”变量,并且没有“spinner”类。有两种解决方案,一种是将变量 dropdown 声明为 Spinner 类型,如下所示:

Spinner dropdown = (Spinner)findViewById(R.id.selectbranch);

或者,您可以使用在 MainActivity 类开头声明的私有变量“spinner”,代码应如下所示:

    spinner = (Spinner)findViewById(R.id.selectbranch);
    String[] items = new String[]{"CSE", "EC", "IT","EN","EDT","CIVIL","EE","IND","MECH","MBA","MCA","CLUB"};

    ArrayAdapter<String> adapter = new ArrayAdapter< >(this, android.R.layout.simple_spinner_dropdown_item, items);
    spinner.setAdapter(adapter);

两种解决方案都可以,但如果您打算稍后在代码中使用此适配器,则删除私有变量是更好的选择。另外,用{}定义数组时不需要使用“new String[]”,也不需要在“new ArrayAdapter”之后使用“<>”。

于 2016-10-02T13:59:30.310 回答