हाँ GridView & TextView का उपयोग करें (CompoundDrawables के साथ) - मैंने पहले ऐसा किया:
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<GridView android:id="@+id/grid" android:numColumns="2"
android:horizontalSpacing="20dip" android:verticalSpacing="20dip"
android:stretchMode="columnWidth" android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>
MainActivity:
GridView grid = (GridView) findViewById(R.id.grid);
grid.setAdapter(new HomeScreenShortcutAdapter());
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
startActivity(i); // Specify activity through Intent i
}
});
public class HomeScreenShortcutAdapter extends BaseAdapter {
HomeScreenShortcutAdapter() {
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv;
final Object data = getItem(position);
if (convertView == null) {
tv = new TextView(getApplicationContext());
tv.setGravity(Gravity.CENTER);
} else {
tv = (TextView) convertView;
}
Drawable icon = data.icon;
CharSequence title = data.title;
tv.setCompoundDrawablesWithIntrinsicBounds(
null, icon, null, null);
tv.setText(title);
tv.setTag(data);
return tv;
}
}
स्रोत
2010-08-21 04:57:29
क्यों एक ग्रिड दृश्य की कोशिश नहीं कर रहा? यहां यह दृश्य प्रकार है, मुझे लगता है कि यह किसी अन्य अभिनव सोच के साथ मिलकर मदद कर सकता है .. मुझे लगता है कि वे क्लिक-सक्षम भी हैं, इसलिए आपको बस एक स्विच केस या कुछ ऐसा करना है। – Shouvik
यदि आप इसे सही मानते हैं तो कृपया उत्तर स्वीकार करें। यह दूसरों को एक ही समस्या का सामना करने में मदद करेगा, समाधान को तेजी से ढूंढें। –