-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();
}
}
무엇이 작동하지 않습니까? TextView와 CheckBox는 다릅니다. 자세한 내용을 참조하십시오 ... – Opiatefuchs
http://stackoverflow.com/questions/9900913/onitemclicklistener-was-not-work-with-the-checkbox, http://stackoverflow.com/questions/2367936/listview-onitemclicklistener-not-responding –