2017-04-18 1 views
-3

확인란 대신 텍스트 뷰를 사용하면 완벽하게 작동합니다. 하지만 확인란을 사용하면 작동하지 않습니다. 여기서 뭐가 잘못 됐니?Custom ListVIew의 체크 박스가 작동하지 않습니다.

모든 checkboxevent에 Menuitem을 업데이트하고 싶습니다.

그래서 어떻게 만들 수 있습니까? 이것은 customview listview입니다. 그래서 xml 파일에 listview가 없습니다. XML 파일에 textview 및 checkbox 만 있습니다. 그것은 클릭를 참가하는

package com.example.chaps.pizzaorder; 
import android.content.Intent; 
import android.content.res.TypedArray; 
import android.graphics.Paint; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.HashMap; 

/** 
* Created by chaps on 17/04/2017. 
*/ 

public class veggies extends ListFragment { 

    ArrayList<HashMap<String, String>> data=new ArrayList<HashMap<String,String>>(); 
    SimpleAdapter adapter; 
    String st; 
    double value; 
    double new_value; 
    //TextView txt; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setHasOptionsMenu(true); 


    } 



    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

     String[] menuItem= getResources().getStringArray(R.array.veggie_topping); 



     String[] menuPrice=getResources().getStringArray(R.array.topping_price_veggie); 




     HashMap<String, String> map=new HashMap<String, String>();//custom adapter for image and text in list View 

     for(int i=0;i<menuItem.length;i++) 
     { 
      map=new HashMap<String, String>(); 
      map.put("Pizza",menuItem[i]); 
      map.put("Price",menuPrice[i]); 
      data.add(map); 
     } 
     String[] from={"Pizza","Price"}; 
     int[] to={R.id.textView5,R.id.checkBox}; 
     adapter=new SimpleAdapter(getActivity(),data,R.layout.veggies,from,to); 
     setListAdapter(adapter); 



     return super.onCreateView(inflater,container,savedInstanceState); 

    } 

    public void onStart() { 

     super.onStart(); 
     getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
/* 
    orders fragment = new orders(); 
    Bundle bundle = new Bundle(); 
    bundle.putString(String.valueOf(R.string.MD01), data.get(position).get("Pizza")); 
    fragment.setArguments(bundle); 
    getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.main_content,fragment).commit(); 

*/ 
       // st=data.get(position).get("Price"); 
       st=data.get(position).get("Price").substring(1); 
       value=Double.parseDouble(st); 
       new_value=new_value+value; 

Toast.makeText(getContext(),st,Toast.LENGTH_SHORT).show(); 




      } 
     }); 



    } 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     super.onCreateOptionsMenu(menu, inflater); 
     inflater.inflate(R.menu.menu_pizza_details, menu); 
    } 

    public void onPrepareOptionsMenu(Menu menu) { 

     MenuItem green = menu.findItem(R.id.actnprice); 
     if(green.getTitle() != String.valueOf(R.string.actnShow)){ 
      // If green menu item title not updated then update/change it 
      green.setTitle("€"+new_value); 
      //Toast.makeText(getContext(),"Green MenuItem Edited",Toast.LENGTH_SHORT).show(); 
     } 
     super.onPrepareOptionsMenu(menu); 
     getActivity().supportInvalidateOptionsMenu(); 
    } 

} 
+0

무엇이 작동하지 않습니까? TextView와 CheckBox는 다릅니다. 자세한 내용을 참조하십시오 ... – Opiatefuchs

+1

http://stackoverflow.com/questions/9900913/onitemclicklistener-was-not-work-with-the-checkbox, http://stackoverflow.com/questions/2367936/listview-onitemclicklistener-not-responding –

답변

0

- 당신은 당신이 목록에서 사용중인 다른 위젯에 falsefocusable를 설정해야합니다.

전체 코드가 없으면 알기가 어렵습니다.

관련 문제