繁体   English   中英

如何从列表视图中选择旋转值?

[英]How to select spinning values from listview?

我在从列表视图获取旋转值时遇到一些问题。在列表视图中,我有textview并与它的微调框有关。

这是我的Result.java

public class Result extends ListActivity{
SpinnerWrapper wrapper=new SpinnerWrapper();
Spinner sp;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result);
    MyAdapter adap=new MyAdapter(this, android.R.layout.simple_list_item_1,R.id.textView1, getResources().getStringArray(R.array.modules));
    adap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    setListAdapter(adap);
    Button b=(Button) findViewById(R.id.button12);
    //final Spinner sp=(Spinner) findViewById(R.id.spinner1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Intent intent=new Intent(Result.this,Cal.class);
            for(int i=0;i<15;i++){
                //String text= sp1.getSelectedItem().toString();
                //Log.d("This", text);
            }
            //Spinner sp1=og.getSp();
            ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(Result.this, R.array.grades, android.R.layout.simple_spinner_dropdown_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            sp.setAdapter(adapter);
            sp.setOnItemSelectedListener(wrapper);
            intent.putExtra("values", sp.getSelectedItem().toString());
            //intent.putExtra("values", sp.setOnItemSelectedListener(wrapper));
            startActivity(intent);              
        }
    });
}
public void getObject(Spinner sp){
    this.sp=sp;
}

private class MyAdapter extends ArrayAdapter<String>{

    public MyAdapter(Context context, int resource, int textViewResourceId,
            String[] strings) {
        super(context, resource, textViewResourceId, strings);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater=(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row=inflater.inflate(R.layout.item_layout, parent,false);
        String[] items=getResources().getStringArray(R.array.modules);
        TextView tv=(TextView) row.findViewById(R.id.textView1);        
        tv.setText(items[position]);
        Spinner sp=(Spinner)row.findViewById(R.id.spinner1);
        ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(Result.this, R.array.grades, android.R.layout.simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp.setAdapter(adapter);
        getObject(sp);
        //og.setSp(sp);
        //sp.setOnItemSelectedListener(wrapper);
        //int dd=row.getId();
        return row;     
    }
}

}

我的Spinner Wrapper类是这样的。

public class SpinnerWrapper implements OnItemSelectedListener {

public SpinnerWrapper() {

}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
        long id) {
     String text=parent.getSelectedItem().toString();
     int intee=parent.getSelectedItemPosition();
     String pos=Integer.toString(intee);
     String tex=parent.getItemAtPosition(position).toString();
     Log.d("Selected", text);
}

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

}

}

我想获得每个微调器的旋转值..我该怎么做?

我不明白为什么你不能获得价值

 String tex=parent.getItemAtPosition(position).toString();
 Log.d("You have selected", tex);

您可以创建一个ArrayList<String>并将所选值添加到该ArrayList 将会是这样。

static ArrayList<String> sth = new ArrayList<String>();

    public void onItemSelected(AdapterView<?> parent, View view, int pos,
            long id) {
        Toast.makeText(
                parent.getContext(),
                "OnItemSelectedListener : "
                        + parent.getItemAtPosition(pos).toString(),
                Toast.LENGTH_SHORT).show();

        for (int i = 0; i < parent.getItemIdAtPosition(pos); i++) {
            sth.add(parent.getItemAtPosition(pos).toString());
        }

        Log.w(getClass().getSimpleName(), "sth size " + sth.size());

    }

由于已存储所选值,因此可以传递该ArrayList

//sp.setOnItemSelectedListener(wrapper);

I see your code is commented. so the OnItemSelectedListener  is not called.

You call different listener for different spinner.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM