package yanzm.example.checkeddoubletextview;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MyActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<myTextClass> list = new ArrayList<myTextClass>();
for(int i=0; i < GENRES.length; i++){
myTextClass data = new myTextClass();
data.text1 = GENRES[i];
data.text2 = GENRES[i] + ":" + GENRES[i];
list.add(data);
}
setListAdapter(new MyAdapter2(this,list));
final ListView listView = getListView();
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setItemChecked(0, true);
}
private static final String[] GENRES = new String[] { "Action",
"Adventure", "Animation", "Children", "Comedy", "Documentary",
"Drama", "Foreign", "History", "Independent", "Romance", "Sci-Fi",
"Television", "Thriller" };
class MyAdapter2 extends ArrayAdapter<myTextClass> {
//private LayoutInflater mInflater;
public MyAdapter2(Context context, List<myTextClass> objects) {
super(context, 0, objects);
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder2 holder;
if (convertView == null) {
convertView = new CheckedDoubleTextView(getContext());
holder = new ViewHolder2();
holder.text1 = (TextView) convertView.findViewById(R.id.text1);
holder.text2 = (TextView) convertView.findViewById(R.id.text2);
convertView.setTag(holder);
} else {
holder = (ViewHolder2) convertView.getTag();
}
myTextClass ttt = getItem(position);
holder.text1.setText(ttt.text1);
holder.text2.setText(ttt.text2);
return convertView;
}
}
static class ViewHolder2 {
TextView text1;
TextView text2;
}
class myTextClass {
private String text1, text2;
}
}
<?xml version="1.0" encoding="utf-8"?>
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
<CheckBox
android:id="@+id/checkmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
/>
</LinearLayout>
package yanzm.example.checkeddoubletextview;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.Checkable;
import android.widget.LinearLayout;
import android.widget.ListView;
public class CheckedDoubleTextView extends LinearLayout implements Checkable {
private CheckBox _checkedTextView;
public CheckedDoubleTextView(Context context) {
super(context);
setLayoutParams(new ListView.LayoutParams(
ListView.LayoutParams.FILL_PARENT,
ListView.LayoutParams.WRAP_CONTENT));
View view = ((LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
R.layout.main, this, false);
_checkedTextView = (CheckBox) view
.findViewById(R.id.checkmark);
addView(view);
}
@Override
public boolean isChecked() {
return _checkedTextView.isChecked();
}
@Override
public void setChecked(boolean checked) {
_checkedTextView.setChecked(checked);
}
@Override
public void toggle() {
setChecked(!isChecked());
}
}