有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从ListView Android中的微调器获取选定值

我有一个微调器列表视图,试图从中获取所选值。如果列表中只有一个项目,一些微调器会自动选择第一个选项,所以我觉得

setOnItemSelectedListener

不一定行吗?不管怎样,我都不确定如何编写这个场景。即使我正确地编写了侦听器,我如何在类中使用它来处理适配器

自定义适配器

public class CustomPLNViewAdapter extends BaseAdapter{

private static ArrayList<ArrayList<String>> partLotNumbersArrayList;
private static ArrayList<String> partNames;

private LayoutInflater mInflater;

private Context myContext;

public CustomPLNViewAdapter(Context context, ArrayList<ArrayList<String>> results, ArrayList<String> parts){
    partLotNumbersArrayList = results;
    partNames = parts;
    mInflater = LayoutInflater.from(context);
    myContext = context;
}
@Override
public int getCount() {
    return partLotNumbersArrayList.size();
}

@Override
public Object getItem(int position) {
    return partLotNumbersArrayList.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.view_assembly_parts, null);
        holder = new ViewHolder();
        holder.txtName = (TextView) convertView.findViewById(R.id.partName);
        holder.spinner = (Spinner) convertView.findViewById(R.id.LotNumbers);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.txtName.setText(partNames.get(position));        

    ArrayAdapter<String> adp1=new ArrayAdapter<String>(myContext, 安卓.R.layout.simple_list_item_1, partLotNumbersArrayList.get(position));          
    adp1.setDropDownViewResource(安卓.R.layout.simple_spinner_dropdown_item);

    //set the adapter to the spinnner
    holder.spinner.setAdapter(adp1);

    //if there is only one other part besides "" then set that as default part
    if(partLotNumbersArrayList.get(position).size() == 2){
        holder.spinner.setSelection(1);
    }   

    return convertView;
}



static class ViewHolder {
    TextView txtName;
    Spinner spinner;
}
}

我在哪里调用代码。显然,我在这里遇到了一个错误,因为ArrayList无法转换为微调器,但我不确定如何获取适配器的视图,然后是后续微调器的视图

// save button click event
    saveButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Log.d("lv count", Integer.toString(lv.getCount()));

            //iterate through listview, 
            for(int i = 0; i < lv.getCount(); i++){
                Spinner temp = (Spinner) lv.getItemAtPosition(i);                   
                Log.d("lv isItemCheck", temp.getSelectedItem().toString());

            }   
            //check to make sure all items have been selected
            if(!checkAllParts()){
                Toast.makeText(getApplicationContext(), "Please Select All List Items", Toast.LENGTH_SHORT).show();
            }
            else{
                Toast.makeText(getApplicationContext(), "All items have been selected", Toast.LENGTH_SHORT).show();
            }
            //go back to previous intent, return 100 that saving succeeded 

            //close intent
        }
    });

共 (0) 个答案