का विस्तार नहीं करता है मेरे पास एक विस्तार योग्य सूचीदृश्य है। मैंने कुछ डमी डेटा डाला है और evrything ठीक लगता है लेकिन जब मैं एप्लिकेशन चलाता हूं तो सभी समूह पतन मोड में होते हैं और जब मैं उनमें से प्रत्येक पर क्लिक करता हूं तो वे प्रभावी नहीं होते हैं। एंड्रॉइड, विस्तारणीय सूची दृश्य पर क्लिक करने के लिए प्रतिक्रिया नहीं है !!! यह
समूह की एक्सएमएल है:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_slider"
android:orientation="horizontal" >
<TextView
android:id="@+id/tvRecipeName"
style="@style/normal_text.bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="50dp"
android:layout_marginRight="5dp"
android:focusable="false"
android:lines="1"
android:maxLines="1"
android:text="@string/dd_title" />
<ImageButton
android:id="@+id/ibDeleteRecipe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:background="@color/transparent"
android:contentDescription="@string/cd"
android:focusable="false"
android:src="@android:drawable/ic_menu_delete" />
<View
android:layout_width="1dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/tvRecipeName"
android:focusable="false" />
</RelativeLayout>
बच्चे की एक्सएमएल है:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/White"
android:gravity="left|center_vertical" >
<View
android:layout_width="1dp"
android:layout_height="35dp"
android:layout_toLeftOf="@+id/tvIngredient"
android:focusable="false" />
<TextView
android:id="@+id/tvIngredient"
style="@style/normal_text_black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="30dp"
android:layout_marginRight="5dp"
android:lines="1"
android:maxLines="1"
android:text="@string/dd_title"
android:focusable="false" />
<ImageButton
android:id="@+id/ibDeleteIngredient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:background="@color/transparent"
android:contentDescription="@string/cd"
android:focusable="false"
android:src="@android:drawable/btn_dialog" />
</RelativeLayout>
और main.xml में, विस्तार योग्य सूची की परिभाषा है:
इस स्क्रीनशॉट है<ExpandableListView
android:id="@+id/elv"
android:layout_width="match_parent"
android:layout_height="match_parent" />
मेरे पास एक एडाप्टर है जिसे मैंने इस कोड को लिखा है:
public class ExpAdapter extends BaseExpandableListAdapter {
private final String TAG = "ExpAdapter";
private Context context;
static final String arrGroupelements[] = {"India", "Australia", "England", "South Africa"};
static final String arrChildelements[][] = { {"Sachin Tendulkar", "Raina", "Dhoni", "Yuvi" },
{"Ponting", "Adam Gilchrist", "Michael Clarke"},
{"Andrew Strauss", "kevin Peterson", "Nasser Hussain"},
{"Graeme Smith", "AB de villiers", "Jacques Kallis"} };
public ExpAdapter(Context context) {
this.context = context;
Log.i(TAG, "Adapter created.");
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.elv_child, null);
}
TextView tvItem = (TextView) convertView.findViewById(R.id.tvIngredient);
ImageButton ibDelete = (ImageButton) convertView.findViewById(R.id.ibDeleteIngredient);
ibDelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, "******");
}
});
tvItem.setText(arrChildelements[groupPosition][childPosition]);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return arrChildelements[groupPosition].length;
}
@Override
public Object getGroup(int groupPosition) {
return null;
}
@Override
public int getGroupCount() {
return arrGroupelements.length;
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.elv_group, null);
}
TextView tvItem = (TextView) convertView.findViewById(R.id.tvRecipeName);
ImageButton ibDeleteRcipe = (ImageButton) convertView.findViewById(R.id.ibDeleteRecipe);
ibDeleteRcipe.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i(TAG, "%%%%%%");
}
});
tvItem.setText(arrGroupelements[groupPosition]);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
और अंत में, टुकड़ा गतिविधि के कोड में मेरे पास है:
public class ShoppingList extends FragmentActivity {
ExpAdapter adapter = new ExpAdapter(this);
//Linking expnadable list view
expListView = (ExpandableListView) findViewById(R.id.elv);
expListView.setAdapter(adapter);
expListView.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Log.i(TAG, "Group " + groupPosition + " expanded.");
}
});
expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Log.i(TAG, "Group " + groupPosition + " collapsed.");
}
});
expListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
Log.i(TAG, "item " + childPosition + " of group " + groupPosition + " clicked.");
return false;
}
});
}
जब मैं आवेदन चलाने के लिए और ओम माता-पिता कुछ नहीं होता पर क्लिक करें।
int count = adapter.getGroupCount();
for (int position = 1; position <= count; position++)
expListView.expandGroup(position - 1);
अब जब मैं चलाने के आवेदन परिणाम इस स्क्रीनशॉट की तरह है:: मैं खरीदारी वर्ग के अंत में कोड की निम्न लाइनों जोड़ने की कोशिश की
मेरे द्वारा हटाए जाने बटन (माता-पिता या बच्चे पर क्लिक करते हैं), मैं देख सकता हूं कि वे प्रभाव लेते हैं (जैसा कि मैं लॉगकैट की जांच करता हूं), हालांकि जब मैं बच्चे या माता-पिता पर क्लिक करता हूं तो कुछ भी नहीं होता है। इसलिए, मुझे नहीं पता कि कॉलबैक क्यों काम नहीं करता है। मेरे शोध के आधार पर मैंने पाया कि मुझे false
पर छवि बटनों के Focussable
सेट करने की आवश्यकता है। जैसा कि आप एक्सएमएल फाइलों में देख सकते हैं मैंने ऐसा किया लेकिन फिर भी जब मैं अभिभावक और बाल पंक्तियों पर क्लिक करता हूं तो मुझे कोई प्रतिक्रिया दिखाई नहीं दे रही है।
जैसा कि मैंने समाधान खोजने के लिए 6-7 घंटे से अधिक समय व्यतीत किया और सफल नहीं हुआ, मैं आपकी टिप्पणियों और सुझावों के लिए ईमानदारी से सराहना करता हूं। धन्यवाद
यह काम करता है।हालांकि लेआउट एक्सएमएल फ़ाइल में किसी भी फोकस योग्य विशेषता को परिभाषित करना आवश्यक नहीं है। – emaringolo
नोट: हमें एंड्रॉइड डालने की आवश्यकता है:
डिबगिंग के घंटों के बाद, जब मैंने कोड के माध्यम से झूठी पर ध्यान केंद्रित किया, तो मेरे विस्तारणीय सूचीदृश्य के ऑनक्लिक ने फायरिंग शुरू कर दी। यह बहुत अजीब है। किसी को पता है क्यों? –