将两个值放在Android的两个单独字段中

时间:2015-03-03 19:43:05

标签: android android-arrayadapter textfield

我需要能够从列表中选择或选择一个项目,在我选择它之后,该项目的名称将进入一个字段,该项目的相应权重将进入另一个字段。

我真的被困在这上面了。我累了制作一个适配器,但它没有锻炼,我只是迷路了,我不知道该去哪里。

我真的很感激帮助。

如果您需要我已经完成的任何代码,请说出来,我会马上提出来。

我没有数据库,我有一个数组或数字和字母。

全部谢谢!

Main.java

public void Chem() {

    Chemical chemical_data[] = new Chemical[]
            {
                    new Chemical("Acid", 125.33),
                    new Chemical("Blue", 145.3356),

            };

    ChemicalAdapter adapter = new ChemicalAdapter(this, R.layout.sollayout, chemical_data);

    chemname = (AutoCompleteTextView) findViewById(R.id.editText4);
    weightval = (EditText) findViewById(R.id.editText);

    //ChemicalAdapter header =  new ChemicalAdapter(this, R.layout.sollayout, null);

    //weightval.addHeaderView(header);

    chemname.setAdapter(adapter);



}

public void Chemname()
{

    chemname = (AutoCompleteTextView) findViewById(R.id.editText4);
    AutoCompleteTextView b = (AutoCompleteTextView) findViewById(R.id.editText4);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Chem();
        }
    });
}

Chemical.java

public class Chemical {
String chemicalValue;
double weight;

public Chemical(String chemicalValue, double weight) {
    this.chemicalValue = chemicalValue;
    this.weight = weight;
}

public String getChemicalValue() {
    return chemicalValue;
}

public double getWeight() {
    return weight;
}

}

ChemicalAdpater.java

public class ChemicalAdapter extends ArrayAdapter<Chemical> {

Context context;
int layoutResourceId;
Chemical data[] = null;

public ChemicalAdapter(Context context, int layoutResourceId, Chemical[] data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    ChemicalHolder holder = null;

    if(row == null)
    {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new ChemicalHolder();
        holder.chemname = (AutoCompleteTextView)row.findViewById(R.id.editText4);
        holder.weightval = (EditText)row.findViewById(R.id.editText);

        row.setTag(holder);
    }
    else
    {
        holder = (ChemicalHolder)row.getTag();
    }

    Chemical chemical = data[position];
    holder.weightval.setText(String.valueOf(chemical.weight));
    holder.chemname.setText(chemical.chemicalValue);

    return row;
}

static class ChemicalHolder
{
    AutoCompleteTextView chemname;
    EditText weightval;
}

}

0 个答案:

没有答案