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();
}
}
was funktioniert nicht? TextView und CheckBox sind unterschiedlich .... Bitte seien Sie detaillierter ... – Opiatefuchs
http://stackoverflow.com/questions/9900913/onitemclicklistener-was-not-work-with-the-checkbox, http://stackoverflow.com/questions/2367936/listview-onitemclicklistener - antwortet nicht –