【发布时间】:2017-05-30 11:17:21
【问题描述】:
在我的 android 应用程序中,我有一个带有项目的 Spinner,例如:(1,2) (3,4) .. (71,72)。 当我从该 Spinner 中选择一个项目时,我会得到例如。 (67,68)在那里。 现在我想以编程方式将所选项目更改为 (65,66) 或 (69,70) 单击一个或另一个 textView。 也就是我想通过点击两个textView来减少或增加String Array中的选择位置,像这样:
' >' .
为此,我可以使用 setSelection(position)。
我的应用程序可以通过使用 getSelectedItemPosition 知道到目前为止选择了哪个项目。
getSelectedItemPosition 返回一个整数。所以例如。如果我减小该整数并使用它运行 setSelection(position),则 SelectedItem 将更改为该数组中的前一项。
因此,要使其工作,我必须将整数添加到“位置变量”, 然后将该变量减 1 并使用该值运行 setSelection(position_variable)。
程序必须验证位置是 0 还是最大值才不会超出/低于界限。
如何在 Java 中实现这一点?我正在 Android Studio 中开发我的应用程序。
在 activity_main.xml 中,我有以下内容:
<TextView
android:id="@+id/forward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ora_keltezese"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:layout_toEndOf="@id/orarend"
android:text="@string/forward"
android:textSize="20sp"
android:onClick="increaseSpinnerItemPosition"/>
<TextView
android:id="@+id/backward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ora_keltezese"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:text="@string/backward"
android:textSize="20sp"
android:onClick="decreaseSpinnerItemPosition"/>
在 MainActivity.java 中,我有以下内容:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.orarend);
//Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.TanitasiNapok, 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);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
Spinner spinner2 = (Spinner) findViewById(R.id.blokkora);
//Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this,
R.array.BlokkoraSorszama, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner2.setAdapter(adapter2);
Spinner spinner3 = (Spinner) findViewById(R.id.osztaly);
//Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(this,
R.array.OsztalyKivalasztasa, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner3.setAdapter(adapter3);
}
public void decreaseSpinnerItemPosition (View v) {
//What to put here?
}
public void increaseSpinnerItemPosition (View v) {
//What to put here?
}
}
那么如何在我的应用程序中实现 position_variable? 我怎样才能实现我的目标?
【问题讨论】: