【问题标题】:One ListView Receiving Data from Multiple Class一个 ListView 从多个类接收数据
【发布时间】:2015-03-10 05:10:50
【问题描述】:

我正在寻找这样的东西: several <ItemTemplate> in one ListView.

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


我需要什么


类生命体征:vTime、BP、心率、每分钟呼吸次数等。

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

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

根据注入到 ListView 中的用户输入(按时间顺序排序)对 Vitals、Medications 和 Procedures 进行分类。如果可以的话,一个“多对一”。

我已经阅读了数小时的“CustomAdapter 和 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 。组织项目; 我什至可能会使用错误的搜索词来搜索我需要的内容。

感谢所有帮助

【问题讨论】:

  • 不清楚详细说明...您的问题是什么,您想做什么?
  • @Rohit,我希望片段中的不同用户输入来收集我的患者治疗信息......(A)生命体征,(B)药物和(C)程序都将在“治疗”列表视图。根据用户输入以各种顺序列出(例如,作为护理人员,我可能会做生命体征。做程序,给予药物,做生命体征)其中每一行来自我的布局文件( row_a、row_b、row_c )。我想要 3 个源(数组或适配器)来提供我的主列表。我需要什么样的自定义 lusy/listview 适配器来动态完成这个?
  • 我认为您想按类别显示所有项目......按类别表示生命体征项目,然后是药物,然后是单个列表视图中的程序......我说得对吗?
  • Rohit 是的,这正是我想要做的。
  • 为此,您必须使用部分列表视图...试试这些教程...javatechig.com/android/listview-with-section-header-in-android

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


【解决方案1】:

你有没有尝试过适配器中的getViewTypeCount()方法,

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

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

搜索一些demo,或许对你有帮助。

【讨论】:

  • 嘿 DavidLeen29;看来你让我走上了正轨;现在我只是在努力正确地确定它。
猜你喜欢
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 2017-06-14
  • 2013-03-19
  • 2021-02-22
相关资源
最近更新 更多