0
私のリストビューには、6つのtextViewと1つのRadioButtonが含まれています。まず、マルチラインlistViewから選択したアイテムを取得する方法。私は何かしようとしましたが、setOnItemClickListenerは動作しません。マルチラインリストビューから選択した項目を取得する方法
もう1つの疑問は、ListViewで一度にラジオボタンを1つだけ選択する方法です。 一度に1つのアイテムだけをチェックすることを許可します。実行する方法。
マイフラグメント:
public class AddAddressFragment extends Fragment {
FloatingActionButton add;
ListView addressListView;
DBHelper mydb;
private ArrayList<String> strArr;
AddressCustomAdapter adapter;
ArrayList<AddressResult> itemList = new ArrayList<AddressResult>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout_add_address, container,
false);
addressListView = (ListView) view.findViewById(R.id.address_list);
mydb = new DBHelper(this.getActivity());
addressListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
strArr = mydb.getAllAddress();
for(int i=0; i<strArr.size();i++){
String[] a= strArr.get(i).split("\\$");
itemList.add(new AddressResult(a[0],a[1],a[2],a[3],a[4],a[5]));
}
adapter = new AddressCustomAdapter(this.getActivity(),itemList);
addressListView.setAdapter(adapter);
addressListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View arg1, int position, long id) {
// TODO Auto-generated method stub
Object obj = addressListView.getItemAtPosition(position);
AddressResult fullObj = (AddressResult)obj;
Toast.makeText(getActivity(), "You have chosen: " + " " + fullObj.getLine1(), Toast.LENGTH_LONG).show();
}
});
add = (FloatingActionButton)view.findViewById(R.id.add_address);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences shared = getActivity().getSharedPreferences("tagAddress", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = shared.edit();
editor.putString("tag", "");
editor.commit();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
AddressFragment fragment = new AddressFragment();
transaction.replace(R.id.another_frame, fragment);
transaction.commit();
}
});
return view;
}
}
CustomAdapter:
public class AddressCustomAdapter extends BaseAdapter implements ListAdapter {
private final Context context;
private final ArrayList<AddressResult> itemsArrayList;
public AddressCustomAdapter(Context context, ArrayList<AddressResult> itemsArrayList) {
this.context = context;
this.itemsArrayList = itemsArrayList;
}
@Override
public int getCount() {
return itemsArrayList.size();
}
@Override
public Object getItem(int position) {
return itemsArrayList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) ((Activity)context).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.address_list,null);
holder = new ViewHolder();
holder.addrTypeTxt = (TextView)view.findViewById(R.id.addr);
holder.line1Txt = (TextView)view.findViewById(R.id.addrLine1Txt);
holder.line2Txt = (TextView)view.findViewById(R.id.addrLine2Txt);
holder.areaTxt = (TextView)view.findViewById(R.id.addrAreaTxt);
holder.cityTxt = (TextView)view.findViewById(R.id.addrCityTxt);
holder.pincodeTxt = (TextView)view.findViewById(R.id.addrPincodeTxt);
holder.radioButton = (RadioButton) view.findViewById(R.id.radioBtn);
view.setTag(holder);
}else{
holder=(ViewHolder)view.getTag();
}
if(Utility.isNotNull(itemsArrayList.get(position).type)){
holder.addrTypeTxt.setText(itemsArrayList.get(position).type);
}else{
Utility.textViewDisable(holder.addrTypeTxt);
}
if(Utility.isNotNull(itemsArrayList.get(position).line1)){
holder.line1Txt.setText(itemsArrayList.get(position).line1);
}else{
Utility.textViewDisable(holder.line1Txt);
}
if(Utility.isNotNull(itemsArrayList.get(position).line2)){
holder.line2Txt.setText(itemsArrayList.get(position).line2);
}else{
Utility.textViewDisable(holder.line2Txt);
}
if(Utility.isNotNull(itemsArrayList.get(position).area)){
holder.areaTxt.setText(itemsArrayList.get(position).area);
}else{
Utility.textViewDisable(holder.areaTxt);
}
if(Utility.isNotNull(itemsArrayList.get(position).city)){
holder.cityTxt.setText(itemsArrayList.get(position).city);
}else{
Utility.textViewDisable(holder.cityTxt);
}
if(Utility.isNotNull(itemsArrayList.get(position).pincode)){
holder.pincodeTxt.setText(itemsArrayList.get(position).pincode);
}else{
Utility.textViewDisable(holder.pincodeTxt);
}
if(itemsArrayList.get(position).selFlag){
holder.radioButton.setChecked(false);
}
return view;
}
public static class ViewHolder{
public TextView addrTypeTxt;
public TextView line1Txt;
public TextView line2Txt;
public TextView areaTxt;
public TextView cityTxt;
public TextView pincodeTxt;
public RadioButton radioButton;
}
}
AddressResult誰も私..
以下のコードを助けてください。 java:
public class AddressResult {
String type = "";
String line1 = "";
String line2 = "";
String area ="";
String city = "";
String pincode = "";
Boolean selFlag;
public AddressResult(String type,String line1,String line2,String area,String city,String pincode){
this.type = type;
this.line1 = line1;
this.line2 = line2;
this.area = area;
this.city = city;
this.pincode = pincode;
this.selFlag = false;
}
public void setType(String type){
this.type = type;
}
public String getType(){
return type;
}
public void setLine1(String line1){
this.line1 = line1;
}
public String getLine1(){
return line1;
}
public void setLine2(String line2){
this.line2 = line2;
}
public String getLine2(){
return line2;
}
public void setArea(String area){
this.area = area;
}
public String getArea(){
return area;
}
public void setCity(String city){
this.city = city;
}
public String getCity(){
return city;
}
public void setPincode(String pincode){
this.pincode = pincode;
}
public String getPincode(){
return pincode;
}
}
ありがとうございます!!!第一の質問には
第一質問、onclickListener – hikoo
には反応はXMLのリストビューで アンドロイド2行を追加していないがあります:フォーカス可能=「false」を アンドロイド:focusableInTouchMode – Attaullah
=「false」に私は追加されていませんが、それでも、コード上で何の反応 – hikoo