2017-04-18 9 views
-3

Wenn ich TextView anstelle von Kontrollkästchen verwende, funktioniert es perfekt. Aber mit Checkbox funktioniert es nicht. Was ist hier falsch?Checkbox in der Custom ListVieve funktioniert nicht

Ich möchte Menuitem mit jedem checkboxevent aktualisieren.

Also, wie kann ich das funktionieren lassen? Dies ist eine benutzerdefinierte Listenansicht, also habe ich keine Listenansicht in meiner XML-Datei. Ich habe nur Textansicht und Kontrollkästchen in XML-Datei.

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

was funktioniert nicht? TextView und CheckBox sind unterschiedlich .... Bitte seien Sie detaillierter ... – Opiatefuchs

+1

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

Antwort

0

Es ist nicht den Klick nehmen - Sie brauchen focusable zu false auf den anderen Widgets festlegen, die Sie in der Liste verwenden.

Es ist schwer, ohne den vollständigen Code sicher zu wissen.

Verwandte Themen