2014-10-08 4 views
2

У меня возникла проблема с получением определенного значения textview, и я получаю значение последнего. Вот мой код getview() customAdapter . В принципе, я хочу обновить количество текст на кнопку плюс мыши и наоборотПолучение текста из ListView в customAdapter

@Override 
    public View getView(int position, View convertview, ViewGroup parent) { 
LayoutInflater layoutInflater=((Activity) activity).getLayoutInflater(); 
     final HashMap<?, ?> map=list.get(position); 
     if(convertview==null) 
     { 
     convertview=layoutInflater.inflate(R.layout.listviewdetails,parent,false); 
     holder = new Viewholder(); 
     holder.title=(TextView) convertview.findViewById(R.id.lserving_size_grams); 
     holder.servingsize=(TextView) convertview.findViewById(R.id.ltvprotiendesclabel); 
     holder.Fiber=(TextView)convertview.findViewById(R.id.lFiberview); 
     holder.lserving_qty=(TextView)convertview.findViewById(R.id.lvalueserving); 
     holder.ckbox=(CheckBox)convertview.findViewById(R.id.lsave_item_box); 
     holder.sminus=(ImageView)convertview.findViewById(R.id.limage_minus); 
     holder.splus=(ImageView)convertview.findViewById(R.id.limage_plus); 

     convertview.setTag(holder); 

     } 
     else 
      { 
      holder=(Viewholder)convertview.getTag(); 
      } 

     //On Check Box Check Events 


     holder.ckbox.setOnCheckedChangeListener(null); 
     holder.splus.setOnClickListener(null); 
     holder.ckbox.setChecked(checkedItems[position]); 
     holder.ckbox.setTag(R.id.lsave_item_box, position); 
     //holder.splus.setOnClickListener(null); 
     holder.lserving_qty.setText(checkedAddSub[position] ? qtysavesearch[position] :             map.get(Constants.NF_SERVING_SIZE_QTY).toString()); 

     holder.splus.setTag(R.id.limage_plus,position); 


     /* 
      * Plus Btn click Listener 
      */ 
     holder.splus.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        final int position = (Integer) v.getTag(R.id.limage_plus); 

        // holder.lserving_qty.getText(checkedAddSub[position] ? qtysavesearch[position] : map.get(Constants.NF_SERVING_SIZE_QTY).toString()); 

        //counter=Math.round(Float.valueOf(serving_size_qty[position])); 
        counter=Math.round(Float.valueOf(holder.lserving_qty.getText().toString())); 
        if(counter>=1) 
        { 
         counter++; 
         qtysavesearch[position]=String.valueOf(counter); 
         checkedAddSub[position]=true; 
         notifyDataSetChanged(); 

        } 
        else 
        { 
         checkedAddSub[position]=false; 
         notifyDataSetChanged(); 

        } 
       } 
      }); 

Пожалуйста, помогите мне Спасибо заранее

+0

Где код для получения определенного значения TextView ? –

+1

holder.lserving_qty.getText(). ToString() –

+0

благодарственное @AbhishekChaubey для указания выше –

ответ

2
public void onShowButtonClickHandler(View v) { 
     RelativeLayout rl = (RelativeLayout) v.getParent(); 
     LinearLayout ll = (LinearLayout) rl.getChildAt(0); 
     TextView textView = (TextView) ll.getChildAt(0); 
     if (!isTablet) { 
      getSupportFragmentManager().beginTransaction() 
        .show(mapFragment) 
        .setCustomAnimations(R.anim.slide_out, R.anim.slide_out) 
        .hide(vehiclesFragment) 
        .commit(); 
      isVehiclesOpen = false; 
     } 
     vehicleToShowHide = textView.getText().toString(); 
     mapFragment.hideVehicle(vehicleToShowHide); 
    } 

Получить позицию parentlayout, а затем попытаться получить положение этого ребенка в отношении этого макета, а затем u получит этот конкретный ряд o n, который вы нажимаете на butoon

+0

как получить childAt (должность)? –

+0

Спасибо, друг, это помогло мне, изменив некоторые контекстуальные, и это задело меня –

+0

Я сделал некоторые изменения, так что просмотрите пожалуйста, чтобы другой пользователь мог получить только ту часть, которая полезна, спасибо u –

0

Ваш «держатель» - это поле вашего адаптера, поэтому он будет переназначен каждый раз, когда вызывается метод getView(), поэтому его окончательное значение является «последним», и это причина, по которой вы получали значение последнего.

Как решить вашу проблему?

Ключевым моментом является поиск конвертирования с помощью кнопки «плюс», поэтому вы можете получить от него правообладатель. Предположим, что ваша кнопка плюс является прямым потомком Вид convertview, вы можете получить право ViewHolder в OnClick (View v) метод со следующим кодом:

// Get the View Parent of the plus button, and its parent surely is the convertview. 
ViewParent vp = v.getParent(); 
ViewHolder holder = (ViewHolder)((View)vp).getTag(); 
// Now you have the right holder and you can get the proper text with it. 
+0

спасибо за вашу заботу, но теперь у меня есть решил –

Смежные вопросы