public static int holo_blue_light=0x7f030000;
}
public static final class id {
- public static int checkbox=0x7f040008;
- public static int empty=0x7f040002;
- public static int footer_container=0x7f040003;
- public static int image=0x7f040005;
- public static int list_header_title=0x7f040004;
- public static int listview=0x7f040001;
- public static int summary=0x7f040007;
- public static int title=0x7f040006;
- public static int title_container=0x7f040000;
+ public static int checkbox=0x7f04000a;
+ public static int content=0x7f040001;
+ public static int empty=0x7f040004;
+ public static int footer_container=0x7f040005;
+ public static int image=0x7f040007;
+ public static int list=0x7f040000;
+ public static int list_header_title=0x7f040006;
+ public static int listview=0x7f040003;
+ public static int summary=0x7f040009;
+ public static int title=0x7f040008;
+ public static int title_container=0x7f040002;
}
public static final class layout {
- public static int activity_base_fragment=0x7f020000;
- public static int list_header=0x7f020001;
- public static int list_item=0x7f020002;
- public static int list_item_small=0x7f020003;
+ public static int list_content=0x7f020000;
+ public static int list_fragment=0x7f020001;
+ public static int list_header=0x7f020002;
+ public static int list_item=0x7f020003;
+ public static int list_item_base=0x7f020004;
+ public static int list_item_selectable=0x7f020005;
}
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="horizontal" >
+
+ <ListView
+ android:id="@+id/list"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="2"
+ android:orientation="vertical" />
+
+ <LinearLayout
+ android:id="@+id/content"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="64dp"
- android:orientation="horizontal" >
-
- <ImageView
- android:id="@+id/image"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:layout_gravity="center_vertical"
- android:layout_margin="2dp"
- android:scaleType="fitCenter" >
- </ImageView>
-
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:layout_weight="1"
- android:orientation="vertical"
- android:paddingLeft="4dp" >
-
- <TextView
- android:id="@+id/title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="2dp"
- android:layout_marginRight="2dp"
- android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
-
- <TextView
- android:id="@+id/summary"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="2dp"
- android:layout_marginRight="2dp"
- android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
- </LinearLayout>
-
- <Switch
- android:id="@+id/checkbox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginLeft="2dp"
- android:layout_marginRight="2dp"
- android:focusable="false"
- android:focusableInTouchMode="false" />
-
-</LinearLayout>
\ No newline at end of file
</ImageView>
<LinearLayout
- android:layout_width="fill_parent"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
<TextView
android:id="@+id/title"
+ style="@android:style/TextAppearance.Medium"
android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- style="@android:style/TextAppearance.DeviceDefault.Medium" />
+ android:layout_height="wrap_content" />
<TextView
android:id="@+id/summary"
+ style="@android:style/TextAppearance.Small"
android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- style="@android:style/TextAppearance.DeviceDefault.Small" />
+ android:layout_height="wrap_content" />
</LinearLayout>
<CheckBox
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent" >
+
+ <LinearLayout
+ android:id="@+id/list"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" />
+
+ <LinearLayout
+ android:id="@+id/content"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" />
+
+</FrameLayout>
\ No newline at end of file
<TextView
android:textAppearance="@android:style/TextAppearance.DeviceDefault"
- xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minHeight="64dp"
android:orientation="horizontal" >
- <ImageView
- android:id="@+id/image"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:layout_gravity="center_vertical"
- android:layout_margin="2dp"
- android:scaleType="fitCenter" >
- </ImageView>
-
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:layout_weight="1"
- android:orientation="vertical"
- android:paddingLeft="4dp" >
-
- <TextView
- android:id="@+id/title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="2dp"
- android:layout_marginRight="2dp"
- android:textColor="@android:color/primary_text_dark"
- android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large" />
-
- <TextView
- android:id="@+id/summary"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="2dp"
- android:layout_marginRight="2dp"
- android:textColor="@android:color/secondary_text_dark"
- android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" />
- </LinearLayout>
-
- <CheckBox
- android:id="@+id/checkbox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_marginLeft="2dp"
- android:layout_marginRight="2dp"
- android:focusable="false"
- android:focusableInTouchMode="false" />
-
+ <include layout="@layout/list_item_base" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="64dp"
- android:orientation="horizontal" >
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/image"
</ImageView>
<LinearLayout
- android:layout_width="fill_parent"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:focusable="false"
android:focusableInTouchMode="false" />
-</LinearLayout>
\ No newline at end of file
+</merge>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/activatedBackgroundIndicator"
+ android:minHeight="64dp"
+ android:orientation="horizontal" >
+
+ <include layout="@layout/list_item_base" />
+
+</LinearLayout>
\ No newline at end of file
return fragment.getView();
}
+ protected int getListContainerId() {
+ return android.R.id.content;
+ }
+
ActivityBaseFragment fragment;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fragment = (ActivityBaseFragment)clazz.getConstructors()[0].newInstance();
fragment.setArguments(getIntent().getExtras());
fragment.setListener(this);
- getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
+ getSupportFragmentManager().beginTransaction().add(getListContainerId(), fragment).commit();
}
catch (Exception e) {
e.printStackTrace();
getFragment().setEmpty(res);
}
- public boolean isDestroyed() {
+ public boolean isDestroyedLegacy() {
return mDestroyed;
}
TextView mEmpty;
@Override
public final View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View ret = inflater.inflate(R.layout.activity_base_fragment, null);
+ View ret = inflater.inflate(R.layout.list_fragment, null);
mListView = (ListView)ret.findViewById(R.id.listview);
mListView.setOnItemClickListener(new OnItemClickListener() {
}
public int getListItemResource() {
- return R.layout.list_item_small;
+ return R.layout.list_item;
}
public void clear() {
mListView.setEmptyView(mEmpty);
mEmpty.setText(res);
}
+
+ public ListView getListView() {
+ return mListView;
+ }
}
--- /dev/null
+package com.koushikdutta.widgets;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ListView;
+
+
+public class ListContentActivity extends ActivityBase {
+ public static class ListContentFragment extends ActivityBaseFragment {
+ @Override
+ public int getListItemResource() {
+ return R.layout.list_item_selectable;
+ }
+ }
+
+ public ListContentActivity() {
+ super(ListContentFragment.class);
+ }
+
+ @Override
+ protected int getListContainerId() {
+ return R.id.list;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.list_content);
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState, View view) {
+ super.onCreate(savedInstanceState, view);
+
+ getFragment().getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+// getFragment().getListView().setCacheColorHint(android.R.color.transparent);
+// getFragment().getListView().setSelector(R.drawable.list_selector);
+ }
+}
--- /dev/null
+<merge xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <include
+ android:visibility="gone"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ layout="@layout/app_info" />
+
+ <include
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ layout="@layout/app_icons" />
+</merge>
\ No newline at end of file
<uses-sdk
android:minSdkVersion="8"
- android:targetSdkVersion="16" />
+ android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault.Light" >
<activity
- android:name="com.koushikdutta.widgets.sample.MainActivity"
+ android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
-
- <activity
- android:name=".MainActivityDark"
- android:theme="@android:style/Theme.DeviceDefault"
- />
+ <activity
+ android:name=".MainActivityDark" />
+ <activity
+ android:name=".ListContentTest"
+ android:theme="@android:style/Theme.Holo" />
</application>
</manifest>
\ No newline at end of file
public final class R {
public static final class id {
- public static final int summary = 0x7f060007;
- public static final int title = 0x7f060006;
- public static final int title_container = 0x7f060000;
- public static final int list_header_title = 0x7f060004;
- public static final int checkbox = 0x7f060008;
- public static final int empty = 0x7f060002;
- public static final int image = 0x7f060005;
- public static final int footer_container = 0x7f060003;
- public static final int listview = 0x7f060001;
+ public static final int summary = 0x7f060009;
+ public static final int content = 0x7f060001;
+ public static final int title = 0x7f060008;
+ public static final int title_container = 0x7f060002;
+ public static final int list_header_title = 0x7f060006;
+ public static final int empty = 0x7f060004;
+ public static final int checkbox = 0x7f06000a;
+ public static final int footer_container = 0x7f060005;
+ public static final int image = 0x7f060007;
+ public static final int list = 0x7f060000;
+ public static final int listview = 0x7f060003;
}
public static final class color {
public static final int holo_blue_light = 0x7f040000;
public static final int holo_blue_dark = 0x7f040001;
}
public static final class layout {
- public static final int list_header = 0x7f030001;
- public static final int list_item_small = 0x7f030003;
- public static final int list_item = 0x7f030002;
- public static final int activity_base_fragment = 0x7f030000;
+ public static final int list_content = 0x7f030000;
+ public static final int list_header = 0x7f030002;
+ public static final int list_item_base = 0x7f030004;
+ public static final int list_item = 0x7f030003;
+ public static final int list_item_selectable = 0x7f030005;
+ public static final int list_fragment = 0x7f030001;
}
}
public static final int nexusone=0x7f020004;
}
public static final class id {
- public static final int checkbox=0x7f060008;
- public static final int empty=0x7f060002;
- public static final int footer_container=0x7f060003;
- public static final int image=0x7f060005;
- public static final int list_header_title=0x7f060004;
- public static final int listview=0x7f060001;
- public static final int summary=0x7f060007;
- public static final int title=0x7f060006;
- public static final int title_container=0x7f060000;
+ public static final int checkbox=0x7f06000a;
+ public static final int content=0x7f060001;
+ public static final int empty=0x7f060004;
+ public static final int footer_container=0x7f060005;
+ public static final int image=0x7f060007;
+ public static final int list=0x7f060000;
+ public static final int list_header_title=0x7f060006;
+ public static final int listview=0x7f060003;
+ public static final int summary=0x7f060009;
+ public static final int title=0x7f060008;
+ public static final int title_container=0x7f060002;
}
public static final class layout {
- public static final int activity_base_fragment=0x7f030000;
- public static final int list_header=0x7f030001;
- public static final int list_item=0x7f030002;
- public static final int list_item_small=0x7f030003;
+ public static final int list_content=0x7f030000;
+ public static final int list_fragment=0x7f030001;
+ public static final int list_header=0x7f030002;
+ public static final int list_item=0x7f030003;
+ public static final int list_item_base=0x7f030004;
+ public static final int list_item_selectable=0x7f030005;
}
public static final class string {
public static final int app_name=0x7f050000;
--- /dev/null
+package com.koushikdutta.widgets.sample;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.koushikdutta.widgets.ListContentActivity;
+import com.koushikdutta.widgets.ListItem;
+
+public class ListContentTest extends ListContentActivity {
+ @Override
+ public void onCreate(Bundle savedInstanceState, View view) {
+ super.onCreate(savedInstanceState, view);
+
+// android:background="?android:attr/activatedBackgroundIndicator"
+ addItem(R.string.devices, new ListItem(getFragment(), "Nexus S", null, R.drawable.nexusone));
+ addItem(R.string.devices, new ListItem(getFragment(), "Nexus One", null, R.drawable.nexusone));
+ addItem(R.string.devices, new ListItem(getFragment(), "Nexus 4", null, R.drawable.nexusone));
+ addItem(R.string.devices, new ListItem(getFragment(), "Nexus 7", null, R.drawable.nexusone));
+ addItem(R.string.devices, new ListItem(getFragment(), "Nexus 10", null, R.drawable.nexusone));
+
+ getFragment().getListView().setItemChecked(0, true);
+ }
+}
public void onCreate(Bundle savedInstanceState, View view) {
super.onCreate(savedInstanceState, view);
+ addItem("Content", new ListItem(getFragment(), "List Content", null, R.drawable.ic_launcher) {
+ @Override
+ public void onClick(View view) {
+ super.onClick(view);
+ startActivity(new Intent(MainActivity.this, ListContentTest.class));
+ }
+ });
addItem("Theme", new ListItem(getFragment(), "Dark Theme", null, R.drawable.ic_launcher) {
@Override
public void onClick(View view) {