【问题标题】:spinner data dependent in android依赖于android的微调器数据
【发布时间】:2013-08-22 14:26:42
【问题描述】:

有问题

在布局上有 2 个微调器,并希望获得该微调器的依赖性 结构

String[] main={"Moscov","LosAngeles","Pekin"};
String[] one={"1","2","3","4"};
String[] two={"2","2","5","8"};
String[] tree={"5","7","3","2"};

使用主数组为第一个微调器创建第一个适配器。 并且依赖于项目选择必须具有依赖于选择的数组的 crete 适配器 如果项目 1 则适配器与数组 1,如果项目 2 则数组 2

【问题讨论】:

  • 你的问题解决了吗?

标签: android arrays spinner


【解决方案1】:

您将创建您的spinner,并根据在第一个Spinner 上使用onItemSelected 的选择,为第二个spinner 设置Adapter。类似的东西

@Override
public void onItemSelected(AdapterView<?> spinner, View view, int position,long arg3)
{
        TextView tv = (TextView)view;  // convert the view to TextView
        String selected = tv.getText().toString();
        if (selected.equals("Moscov"))
        {
            // set the Adapter here with the first set of values
        }
        else if(selected.equals("LosAngeles"))
        {
            // set the Adapter here with the second set of values
        }
        else
        {
            // set the Adapter here with the third set of values
        }
}

您也可以使用position,如果您将String Arrays 放入ArrayList,它可能更具可扩展性。

【讨论】:

  • 如果这对您有用,请点击答案旁边的复选标记 :)
  • 是的)很好))但这是一个例子,我有 85 个数组 =) 最后想更自动地完成这个过程
  • 然后我会将您所有的Arrays 放入ArrayList 并使用onItemSelected 中的position 参数从您的ArrayList 中获取适当的Array
【解决方案2】:
@Override
public void onItemSelected(AdapterView<?> spinner, View view, int position,long arg3)
{

      switch(position) 
       { 
         case : 0;
       // called first array
        break;

       case : 1;
      // called second array
       break;
    }
}

【讨论】:

    【解决方案3】:

    检查此代码 sn-p ,在此微调器 2 的值取决于微调器 1

    public class MainActivity extends Activity {
    
    Spinner s1,s2;
    Button btn;
    String s;
    TextView tv;
    ArrayAdapter<String> adap1,adap2,adap3; 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        s1=(Spinner)findViewById(R.id.spinner1);
        s2=(Spinner)findViewById(R.id.spinner2);
        btn=(Button)findViewById(R.id.button1);
        tv=(TextView)findViewById(R.id.tv1);
    
    
        String[] v1=getResources().getStringArray(R.array.c1);
        String[] v2=getResources().getStringArray(R.array.c2);
        String[] v3=getResources().getStringArray(R.array.c3);
    
        adap1=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, v1);
        adap2=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, v2);
        adap3=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, v3);
    
    }
    
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    public class ItemSelectedListenerr implements OnItemSelectedListener  {
    
        String[] v=getResources().getStringArray(R.array.c1);
        public String s;
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
    
            s=arg0.getItemAtPosition(arg2).toString();
            if(arg2==0)
            {
                s2.setAdapter(adap1);
            }
            if(arg2==1)
            {
                s2.setAdapter(adap2);
            }
            if(arg2==2)
            {
                s2.setAdapter(adap3);
            }
    
            tv.setText(s);
            Log.i("hahaha", "item selected is"+s);
    
        }
    
    
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
    
        }
    
    }
    
    }
    

    我希望这会对你有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 2016-07-20
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      相关资源
      最近更新 更多