一个ListView从多个类接收数据

时间:2015-03-10 05:10:50

标签: android xml listview android-fragments custom-adapter

我正在寻找这样的事情: several <ItemTemplate> in one ListView

但它是在.ASP和我的水平之上。


我需要什么


分类生命:vTime,BP,心率,每分钟呼吸等

类药物:mTime,RxName,RxRoute,RxDose,RxDoseUnit等。

课程程序:pTime,插管,IV插入,除颤等

类别Vitals,Medications和Procedures基于注入ListView的用户输入(按时间顺序排序)。如果可能的话,这是“多对一”。

我花了几个小时的“CustomAdapter&amp; ListView”教程,代码示例,演练。


这是我目前的代码(已删除和分散),以表明我正在积极寻求解决方案:

/*
 * Created by SwaLayS on 2/19/2015.
 */

public class VitalAdapter extends BaseAdapter {

private ArrayList<VitalItem> vitalData;
private LayoutInflater layoutInflater;


public VitalAdapter(Context acontext, ArrayList<VitalItem> vitalData){
    this.vitalData=vitalData;
    layoutInflater=LayoutInflater.from(acontext);
}


@Override
public int getCount() {
    return vitalData.size();
}

@Override
public Object getItem(int position) {
    return vitalData.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 = layoutInflater.inflate(R.layout.vital_view_children,null);
        holder = new ViewHolder();

    }


}

public class VitalView extends RelativeLayout {
private TextView vTimeTV;
// private TextView vPTATV;
private TextView vRateTV;
private TextView vOxySatTV;
private TextView vSysBPTV;
private TextView vDiaBPTV;
private TextView vRespRateTV;
private TextView vRespEffortTV;
//private TextView vMethodBPTV;

public static VitalView inflate(ViewGroup parent){
    VitalView vitalView = (VitalView) LayoutInflater.from(parent.getContext())
            .inflate(R.layout.vital_view,parent,false);
    return vitalView;
}

public VitalView(Context c){
    this(c,null);
}

public VitalView(Context context, AttributeSet attrs){
    this(context, attrs,0);
}

public VitalView(Context context, AttributeSet attrs, int defStyle){
    super(context,attrs,defStyle);
LayoutInflater.from(context).inflate(R.layout.vital_view_children, this,true);
    setupChildren();
}

private void setupChildren(){
    vTimeTV = (TextView)findViewById(R.id.vTime);
 // vPTATV = (TextView)findViewById(R.id.vPTA);
    vRateTV = (TextView) findViewById(R.id.vBPM);
    vOxySatTV = (TextView) findViewById(R.id.vOsat);
    vSysBPTV = (TextView) findViewById(R.id.vSystolic);
    vDiaBPTV = (TextView)findViewById(R.id.vDiastolic);
    vRespRateTV = (TextView) findViewById(R.id.vRespRate);
    vRespEffortTV = (TextView)findViewById(R.id.vRespEffort);
 // vMethodBPTV = (TextView)findViewById(R.id.vMethodBP

}
public void setVital(VitalItem vital){
   //vTimeTV.setText(vital.get);
    }
}

public class VitalItem {


private String vTime;
// private String vPTA;
private String vRate;
private String vOxySat;
private String vSysBP;
private String vDiaBP;
private String vRespRate;
private String vRespEffort;
// private String vMethodBP;


 public VitalItem(String Time, String Rate, String OxySat, String SysBP, String DiaBp, RespRate, String RespEffort){
    super();
    vTime=Time;
    // vPTA=PTA;
    vRate=Rate;
    vOxySat = OxySat;
    vSysBP = SysBP;
    vDiaBP = DiaBP;
    vRespRate = RespRate;
    vRespEffort=RespEffort;
    //vMethodBP=MethodBP;
}




public String getvTime() {
    return vTime;
}

public void setvTime(String vTime) {
    this.vTime = vTime;
}

// public String getvPTA() {
//      return vPTA;
// }

// public void setvPTA(String vPTA) {
//     this.vPTA = vPTA;
// }

public String getvRate() {
    return vRate;
}

public void setvRate(String vRate) {
    this.vRate = vRate;
}

public String getvOxySat() {
    return vOxySat;
}

public void setvOxySat(String vOxySat) {
    this.vOxySat = vOxySat;
}

public String getvSysBP() {
    return vSysBP;
}

public void setvSysBP(String vSysBP) {
    this.vSysBP = vSysBP;
}

public String getvDiaBP() {
    return vDiaBP;
}

public void setvDiaBP(String vDiaBP) {
    this.vDiaBP = vDiaBP;
}

public String getvRespRate() {
    return vRespRate;
}

public void setvRespRate(String vRespRate) {
    this.vRespRate = vRespRate;
}

public String getvRespEffort() {
    return vRespEffort;
}

public void setvRespEffort(String vRespEffort) {
    this.vRespEffort = vRespEffort;
}

// public String getvMethodBP() {
//    return vMethodBP;
//}

// public void setvMethodBP(String vMethodBP) {
//     this.vMethodBP = vMethodBP;
// 
    }


}

我会感激任何事物; 我正在研究NEMSIS。组织项目; 我甚至可能会使用错误的搜索条件搜索我需要的内容。

感谢所有帮助

1 个答案:

答案 0 :(得分:0)

您是否在适配器中尝试了getViewTypeCount()方法,

它可以为您的不同数据类型定义不同的itemView。

对于您的情况,您需要定义三个布局项。

搜索一些演示,它可能对你有帮助。