gpt4 book ai didi

java - 用数组声明微调器的简单方法

转载 作者:行者123 更新时间:2023-12-02 03:19:52 25 4
gpt4 key购买 nike

我想在android上制作一些动态添加的Spinner。当选择第一个Spinner时,第二个微调器将会出现。我想以编程方式创建所有 Spinner

这是我到目前为止所做的事情。

public class MainActivity  extends Activity {

Spinner spnKolom[]; // I declare an array of Spinner

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

所以我尝试像这样创建旋转器。

final DataHelper db = new DataHelper(getApplicationContext());
final List<String> labelKolom = db.getKolom();

for (int itung=0;itung<labelKolom.size();itung++){
spnKolom[itung] = new Spinner(this);
}

执行此操作的正确方法是什么?

编辑

我的问题是用数组声明一个微调器。在我的期望中,我想声明一个带有数组的 Spinner 来制作多个 Spinner,这样当选择第一个 Spinner 时我可以用它来创建一个新的 Spinner。

最佳答案

根据我对您的要求的理解,我完成了以下编码,请检查,希望对您有所帮助。

首先在您的 Activity 中实现监听器

    public class MainActivity  extends Activity implements AdapterView.OnItemSelectedListener

现在您的 XML 文件应如下所示

activity_main.xml

    <LinearLayout
android:id="@+id/main_Layout"
android:background="#FF0000"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ScrollView
android:id="@+id/scMainView"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:id="@+id/llSpinnerSection"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
</ScrollView>
</LinearLayout>

现在在您的主要 Activity 中声明您的布局如下

   LinearLayout  mainSpinnerLayout = (LinearLayout) findViewById(R.id.llSpinnerSection);

现在创建一种获取数据并设置微调器的方法

   public void createSpinners()
{

final DataHelper db = new DataHelper(getApplicationContext());
final List<String> labelKolom = db.getKolom();

spnKolom = new Spinner[labelKolom.size()];

for (int itung=0;itung<labelKolom.size();itung++)
{
spnKolom[itung] = new Spinner(this);
spnKolom[itung].setTag(itung);

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, labelKolom);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spnKolom[itung].setAdapter(spinnerArrayAdapter);
spnKolom[itung].setOnItemSelectedListener(this);

if(itung == 0)
{
spnKolom[itung].setVisibility(View.VISIBLE);
}
else
{
spnKolom[itung].setVisibility(View.GONE);
}

mainSpinnerLayout.addView(spnKolom[itung]);
}
}

最后实现微调器的方法,以在选择项目时显示下一个微调器

//Performing action onItemSelected and onNothing selected
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position,long id) {

if(position < spnKolom.length - 1)
{
spnKolom[position + 1].setVisibility(View.VISIBLE);
}

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}

希望这对您有用

关于java - 用数组声明微调器的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39761511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com