Android - 微调器设置 TextView visible/invisible
Android - Spinner setting TextView visible/invisible
我正在尝试做我的第一个 Spinner
,我遇到了一些困难,比如我不知道我是否可以在 spinner.getSelectItem == "some string"
之前获得一个选项。
看看我到目前为止的代码
填充微调器:
public void addItemsOnSpinner() {
Spinner buttonSpinner = (Spinner) findViewById(R.id.buttonSpinner);
List<String> list = new ArrayList<String>();
list.add("Ultimos 5 lancamentos");
list.add("Ultimos 7 lancamentos");
list.add("Ultimos 10 lancamentos");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
buttonSpinner.setAdapter(dataAdapter);
}
正在尝试进行 if 语句:
if(buttonSpinner.getSelectedItem().toString() == "Ultimos 10 lancamentos"){
textView.setVisibility(View.VISIBLE);
}
请求的TextView代码:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Deposito"
android:visibility="invisible"
android:id="@+id/textView"
android:layout_row="2"
android:layout_column="0"
android:layout_gravity="center|left" />
及其在class上的代码:
TextView textView = (TextView)findViewById(R.id.textView);
是的,你可以做到,而且效果很好,但请使用
buttonSpinner.getSelectedItem().toString().equals("Ultimos 10 lancamentos");
正如 Stefano 所指出的,您的比较应该使用 equals
(它比较字符串内容,而 ==
比较对象引用)。
否则您的 if
语句应该可以工作,但是不清楚您从哪里调用它(这可能是问题的原因)。如果您想在选择微调项后立即进行比较,则需要设置一个 OnItemSelectedListener
并在那里进行比较。
下面是一个示例,说明如何内联声明此侦听器:
buttonSpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
String selectedItem = parent.getSelectedItem().toString();
if (selectedItem.equals("Ultimos 10 lancamentos"))
{
textView.setVisibility(View.VISIBLE);
}
}
public void onNothingSelected(AdapterView<?> parent)
{
}
});
我正在尝试做我的第一个 Spinner
,我遇到了一些困难,比如我不知道我是否可以在 spinner.getSelectItem == "some string"
之前获得一个选项。
看看我到目前为止的代码
填充微调器:
public void addItemsOnSpinner() {
Spinner buttonSpinner = (Spinner) findViewById(R.id.buttonSpinner);
List<String> list = new ArrayList<String>();
list.add("Ultimos 5 lancamentos");
list.add("Ultimos 7 lancamentos");
list.add("Ultimos 10 lancamentos");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
buttonSpinner.setAdapter(dataAdapter);
}
正在尝试进行 if 语句:
if(buttonSpinner.getSelectedItem().toString() == "Ultimos 10 lancamentos"){
textView.setVisibility(View.VISIBLE);
}
请求的TextView代码:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Deposito"
android:visibility="invisible"
android:id="@+id/textView"
android:layout_row="2"
android:layout_column="0"
android:layout_gravity="center|left" />
及其在class上的代码:
TextView textView = (TextView)findViewById(R.id.textView);
是的,你可以做到,而且效果很好,但请使用
buttonSpinner.getSelectedItem().toString().equals("Ultimos 10 lancamentos");
正如 Stefano 所指出的,您的比较应该使用 equals
(它比较字符串内容,而 ==
比较对象引用)。
否则您的 if
语句应该可以工作,但是不清楚您从哪里调用它(这可能是问题的原因)。如果您想在选择微调项后立即进行比较,则需要设置一个 OnItemSelectedListener
并在那里进行比较。
下面是一个示例,说明如何内联声明此侦听器:
buttonSpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
String selectedItem = parent.getSelectedItem().toString();
if (selectedItem.equals("Ultimos 10 lancamentos"))
{
textView.setVisibility(View.VISIBLE);
}
}
public void onNothingSelected(AdapterView<?> parent)
{
}
});