为什么我的微调器没有被填充

时间:2018-04-17 15:54:15

标签: java android

所以我有两个类,MainActivity和SpinnerActivity。

无论我现在做什么,我的微调器都没有填充使用主题ArrayList的topicsAdapter中的数据。

也许这只是我偶然发现的一件容易事,但我无法弄清楚。

MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar myToolbar = findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);

    Intent spinner = new Intent(this, SpinnerActivity.class);
    startActivity(spinner);
}

SpinnerActivity.java

public class SpinnerActivity extends AppCompatActivity {

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

    LayoutInflater inflater = LayoutInflater.from(this);
    View view = inflater.inflate(R.layout.activity_main, null);


    ArrayList<String> topics = new ArrayList<>();

    topics.add("Home");
    topics.add("Android");
    topics.add("Test 3");

    Spinner spinner = (Spinner) view.findViewById(R.id.toolbar_spinner);
    ArrayAdapter<String> topicsAdapter = new ArrayAdapter<>(this, R.layout.spinner_item, topics);
    topicsAdapter.setDropDownViewResource(R.layout.spinner_dropdown);
    spinner.setAdapter(topicsAdapter);

}

3 个答案:

答案 0 :(得分:2)

问题:您正在创建一个单独的视图(通过膨胀)并且与当前SpinnerActivity的布局没有关联,并且还在该无关视图中创建了微调器。

解决方案:

您可以setContentView(view);使用充气视图中的微调器

如果您的布局中有微调器,那么使用(看起来好像它会崩溃

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

并删除

LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.activity_main, null);

答案 1 :(得分:0)

您应该将setContentView(R.layout.activity_main);更改为此Spinner所在的布局文件。 顺便说一句,你应该删除这些行

LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.activity_main, null);

答案 2 :(得分:0)

请用以下代码替换您的代码: -

public class SpinnerActivity extends AppCompatActivity {

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

    ArrayList<String> topics = new ArrayList<>();

    topics.add("Home");
    topics.add("Android");
    topics.add("Test 3");

    Spinner spinner = (Spinner) findViewById(R.id.toolbar_spinner);
    ArrayAdapter<String> topicsAdapter = new ArrayAdapter<>(this, R.layout.spinner_item, topics);
    topicsAdapter.setDropDownViewResource(R.layout.spinner_dropdown);
    spinner.setAdapter(topicsAdapter);

}