Android Studio:微调器根本不显示项目。 [XML / JAVA]
Android Studio: Spinner not showing items at all. [XML / JAVA]
我无法使工作成为一个简单的 android 微调器。我在网上看了很多例子,但没有一个适合我。
这是我在 xml 中所做的:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:theme="@style/ThemeOverlay.AppCompat.Light"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
在我这里 java class:
public class PreferencesActivity extends AppCompatActivity {
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences);
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
@Override
public void onResume(){
super.onResume();
setContentView(R.layout.preferences);
}
}
在我这里 xml res/string:
<resources>
<string-array name="language_str">
<item>Language</item>
<item>Langue</item>
<item>Lingua</item>
<item>Idioma</item>
</string-array>
<string-array name="language_list">
<item>English</item>
<item>Francais</item>
<item>Italiano</item>
<item>Espanol</item>
</string-array>
</resources>
当我调试我的应用程序(使用真实设备)时,微调器根本没有显示,就像代码从未执行过一样。
我读到有关旋转的“更改背景颜色”的信息,但似乎什么也没发生。我尝试在 xml 文件中插入关键字“条目”,但没有任何反应。
可能是什么问题?我哪里错了?
谢谢,
马可.
从 onResume() 方法中删除以下行将解决您的问题
setContentView(R.layout.preferences);
替换此行:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
有了这个:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
我无法使工作成为一个简单的 android 微调器。我在网上看了很多例子,但没有一个适合我。
这是我在 xml 中所做的:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:theme="@style/ThemeOverlay.AppCompat.Light"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
在我这里 java class:
public class PreferencesActivity extends AppCompatActivity {
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences);
spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
@Override
public void onResume(){
super.onResume();
setContentView(R.layout.preferences);
}
}
在我这里 xml res/string:
<resources>
<string-array name="language_str">
<item>Language</item>
<item>Langue</item>
<item>Lingua</item>
<item>Idioma</item>
</string-array>
<string-array name="language_list">
<item>English</item>
<item>Francais</item>
<item>Italiano</item>
<item>Espanol</item>
</string-array>
</resources>
当我调试我的应用程序(使用真实设备)时,微调器根本没有显示,就像代码从未执行过一样。 我读到有关旋转的“更改背景颜色”的信息,但似乎什么也没发生。我尝试在 xml 文件中插入关键字“条目”,但没有任何反应。
可能是什么问题?我哪里错了? 谢谢, 马可.
从 onResume() 方法中删除以下行将解决您的问题
setContentView(R.layout.preferences);
替换此行:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
有了这个:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);