android – 如何将listview行中textview的值放入片段

android – 如何将listview行中textview的值放入片段,第1张

概述在 Android应用程序上运行’我想从我的textview中传递值,该值位于listview的行中并将其放入片段中.我听说有关convertView.gettag和settag方法的说法,我不知道如何处理. 我的代码: public class EvaluationsFragment extends CustomFragment implements View.OnClickListener, 在 Android应用程序上运行’我想从我的textvIEw中传递值,该值位于ListvIEw的行中并将其放入片段中.我听说有关convertVIEw.gettag和settag方法的说法,我不知道如何处理.
我的代码:

public class EvaluationsFragment extends CustomFragment implements VIEw.OnClickListener,AdapterVIEw.OnItemSelectedListener {private PatIEnt mPatIEnt;private VIEw myVIEw;private Context context;private button btnAjoutEvaluation;private ListVIEw evaluations_historic_Liste;private List<Evaluation>mEvaluation;private EvaluationDto mEvaluationDto;@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater,@Nullable VIEwGroup container,@Nullable Bundle savedInstanceState){   myVIEw = inflater.inflate(R.layout.fragment_evaluations,container,false);   return myVIEw;}@OverrIDepublic voID onActivityCreated(Bundle savedInstanceState){    super.onActivityCreated(savedInstanceState);    init();}private voID init(){    evaluations_historic_Liste = (ListVIEw)myVIEw.findVIEwByID(R.ID.evaluations_historic_Liste);    btnAjoutEvaluation = (button)myVIEw.findVIEwByID(R.ID.evaluations_add__btn);    btnAjoutEvaluation.setonClickListener(this);    TypeEvaluation mNouveauTypeEvaluation;    mPatIEnt =((DossIErActivity)mRootActivity).mPatIEnt;    mEvaluationDto = new EvaluationDto(mRootActivity.getApplicationContext());    evaluations_historic_Liste.setonItemClickListener(new AdapterVIEw.OnItemClickListener() {        @OverrIDe        public voID onItemClick(AdapterVIEw<?> parent,VIEw vIEw,int position,long ID) {            EvaluationAdapter.EvaluationItem item =  (EvaluationAdapter.EvaluationItem)vIEw.getTag();            openDetailEvaluation(item);        }    });    mEvaluationDto.open();    try{        mEvaluation = mEvaluationDto.getEvaluationsByPatIEntID(mPatIEnt.getID());    }catch (sqlException e) {        Log.e(Constants.APP_LOG_TAG,e.getMessage());        ACRA.getErrorReporter().handleException(e);    } finally{        mEvaluationDto.close();    }    if(mEvaluation != null && mEvaluation.size() >0){        evaluations_historic_Liste.setAdapter(new EvaluationAdapter(mRootActivity,mEvaluation));    }else {        evaluations_historic_Liste.setVisibility(VIEw.GONE);    }}@OverrIDepublic voID onClick(VIEw v) {    switch(v.getID()){        case (R.ID.evaluations_add__btn):            openNewEvaluation();            break;    }}public voID openNewEvaluation(){    Fragment fragment = new EvaluationNouvelleFragment();    androID.support.v4.app.FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();    fragmentTransaction.replace(R.ID.content_frame,new EvaluationNouvelleFragment());    fragmentTransaction.commit();}public voID openDetailEvaluation(EvaluationAdapter.EvaluationItem item){    EvaluationAdapter evaluationAdapter = new EvaluationAdapter();    EvaluationDetailHistoriqueFragment detail = new EvaluationDetailHistoriqueFragment();    Bundle args = new Bundle();    args.putString(EvaluationDetailHistoriqueFragment.DATA_RECEIVE,/*HERE I NEED TO PUT item_evaluation_nom.setText()*/  );    detail.setArguments(args);    getFragmentManager().beginTransaction().replace(R.ID.content_frame,detail).commit();}@OverrIDepublic voID onItemSelected(AdapterVIEw<?> parent,long ID) {}@OverrIDepublic voID onnothingSelected(AdapterVIEw<?> parent) {}public class EvaluationAdapter extends BaseAdapter {    private Context mcontext;    private List<EvaluationItem> mItems = new ArrayList<EvaluationItem>();    public EvaluationAdapter(){}    public EvaluationAdapter(Context context,List<Evaluation> values) {        this.mcontext = context;        for (Evaluation e : values) {            mItems.add(new EvaluationItem(e));        }    }    @OverrIDe    public int getCount() {        return mItems.size();    }    @OverrIDe    public EvaluationItem getItem(int position) {        return mItems.get(position);    }    @OverrIDe    public long getItemID(int position) {        return 0;    }    @OverrIDe    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {        VIEw vIEw = null;        EvaluationItemHolder holder;        if (convertVIEw == null) {            convertVIEw = LayoutInflater.from(mcontext).inflate(R.layout.List_items_historic_evaluations,parent,false);            holder = new EvaluationItemHolder();            holder.item_evaluation_date = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_evaluation_date);            holder.item_evaluation_nom = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_evaluation_nom);            holder.item_evaluation_personnel = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_evaluation_personnel);            holder.item_evaluation_score = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_evaluation_score);            holder.item_evaluation_date_reevaluation = (TextVIEw) convertVIEw.findVIEwByID(R.ID.item_evaluation_date_reevaluation);            convertVIEw.setTag(holder);        }else{            holder = (EvaluationItemHolder)convertVIEw.getTag();        }         final EvaluationItem item = getItem(position);         int score = (item.getscoreTV()).intValue();         holder.item_evaluation_date.setText( + " " + item.getDateTV());         holder.item_evaluation_nom.setText(item.getTypeEvalTV());         if (item.getPersonnelTV() != null) {                holder.item_evaluation_personnel.setText( + " " + item.getPersonnelTV());            }         holder.item_evaluation_score.setText( + String.valueOf(score));         if (item.getDateReevalTV() != null) {                holder.item_evaluation_date_reevaluation.setText( item.getDateReevalTV());            }    //   convertVIEw.setTag(1,item.getTypeEvalTV());        return convertVIEw;    }    public class EvaluationItem {        private String dateTV;        private String typeEvalTV;        private String personnelTV;        private Double scoreTV;        private String dateReevalTV;        public String getDateTV() {return dateTV;}        public voID setDateTV(String dateTV) {            this.dateTV = dateTV;        }        public String getTypeEvalTV() {            return typeEvalTV;        }        public voID setTypeEvalTV(String typeEvalTV) {            this.typeEvalTV = typeEvalTV;        }        public String getPersonnelTV() {            return personnelTV;        }        public voID setPersonnelTV(String personnelTV) {            this.personnelTV = personnelTV;        }        public Double getscoreTV() {            return scoreTV;        }        public voID setscoreTV(Double scoreTV) {            this.scoreTV = scoreTV;        }        public String getDateReevalTV() {            return dateReevalTV;        }        public voID setDateReevalTV(String dateReevalTV) {            this.dateReevalTV = dateReevalTV;        }        public EvaluationItem(Evaluation e){            this.dateTV = e.getDate();            this.typeEvalTV = e.getTypeEvaluation().getlibelle();            this.personnelTV = e.getPersonnellibelle();            this.scoreTV = e.getscore();            this.dateReevalTV = e.getDateReevaluation();        }    }}        public static class EvaluationItemHolder{            public TextVIEw item_evaluation_date;            public TextVIEw item_evaluation_nom;            public TextVIEw item_evaluation_personnel;            public TextVIEw item_evaluation_score;            public TextVIEw item_evaluation_date_reevaluation;        }}
解决方法 你做得很好,你需要一个捆绑来做到这一点.

首先创建一个String,您可以在其中保留值

holder.item_evaluation_nom.getText();

然后例如你这样做:

String itemEvaluation = holder.item_evaluation_nom.getText();

这是正确的捆绑包

EvaluationDetailHistoriqueFragment detail = new EvaluationDetailHistoriqueFragment();Bundle bundle = new Bundle();bundle.putString("text",itemEvaluation);detail.setArguments(bundle);

然后要检索这个,你这样做:

Bundle bundle = this.getArguments();if (bundle != null) {   String itemEvaluation = bundle.getString("text","");}

希望能帮助到你.

编辑

您需要将一个适配器添加到evaluateations_historic_Liste列表中.

你可以这样做:

evaluations_historic_Liste.setAdapter(new EvaluationAdapter(getActivity(),mEvaluation));

mEvaluation是您必须在其上放置数据的List.

然后在ListVIEw中添加:

evaluation_historic_Liste.setonItemClickListener(new OnItemClickListener() {public voID onItemClick(AdapterVIEw<?> adapter,VIEw v,long ID){   String itemEvaluation = (String) ((TextVIEw)vIEw.findVIEwByID(R.ID.item_evaluation_nom)).getText();  //or String itemEvaluation=(evaluation_historic_Liste.getItemAtposition(position).toString()); }}
总结

以上是内存溢出为你收集整理的android – 如何将listview行中textview的值放入片段全部内容,希望文章能够帮你解决android – 如何将listview行中textview的值放入片段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1125674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存