ListView inside cardview not showing full data - android

how to solve this issue for ListView inside cardview.In the below image i have listview but the problem is i m not getting the full data shown.only first row is visible:
// this is my code
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="#dimen/card_margin"
android:layout_marginLeft="#dimen/card_margin"
android:layout_marginRight="#dimen/card_margin">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="#+id/qualification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#E0E0E0"
android:gravity="center"
android:text="Qualifications"
android:textAppearance="#style/TextAppearance.AppCompat.Title"
android:textColor="#4A148C" />
<TextView
android:id="#+id/addqualification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="#+id/qualification"
android:layout_marginTop="15dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:drawableLeft="#drawable/ic_add"
android:drawablePadding="20dp"
android:drawableStart="#drawable/ic_add"
android:paddingLeft="30dp"
android:text="Add Qualifications"
android:textColor="#0e89d0" />
<ListView
android:id="#+id/listQualification"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="#+id/addqualification">
</ListView>
</RelativeLayout>
</android.support.v7.widget.CardView>
//this is my list_row
<?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"
>
<TextView
android:id="#+id/course"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10sp"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:text="Course:"
android:visibility="gone"
/>
<TextView
android:id="#+id/courseName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="#+id/course"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Course Name"
android:maxLength="255"
android:maxLines="4"
android:textSize="10sp"
android:ellipsize="middle"
/>
<TextView
android:id="#+id/university"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/courseName"
android:text="University:"
android:layout_marginLeft="10dp"
android:textSize="10sp"
android:textStyle="bold"
android:visibility="gone"
android:layout_marginTop="3dp"/>
<TextView
android:id="#+id/universityName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/courseName"
android:layout_toRightOf="#+id/university"
android:layout_marginLeft="10dp"
android:layout_marginTop="3dp"
android:textSize="10sp"
android:text="University Name"
android:ellipsize="middle"
android:maxLines="4"
/>
<TextView
android:id="#+id/year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/universityName"
android:layout_marginLeft="10dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="3dp"
android:textSize="10sp"
android:textStyle="bold"
android:text="Year:"
android:visibility="gone"/>
<TextView
android:id="#+id/year1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="#+id/universityName"
android:layout_toRightOf="#+id/year"
android:layout_marginTop="3dp"
android:layout_marginLeft="10dp"
android:textSize="10sp"
android:ellipsize="middle"
android:maxLines="4"
android:text="Year" />
</RelativeLayout>
// this is my adapter class
public class QualificationAdapter extends BaseAdapter{
public ArrayList<Qualification> mQualification;
Context context;
public QualificationAdapter(ArrayList<Qualification> mQualification, Context
context) {
this.context = context;
this.mQualification = mQualification;
}
#Override
public int getCount() {
return mQualification.size();
}
#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) {
View v = null;
Qualification qualification = mQualification.get(position);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_qualification_row, parent,
false);
} else {
v = convertView;
}
TextView course = (TextView) v.findViewById(R.id.course);
TextView university = (TextView) v.findViewById(R.id.university);
TextView year = (TextView) v.findViewById(R.id.year);
TextView courseName = (TextView) v.findViewById(R.id.courseName);
courseName.setText(qualification.getCourse());
TextView universityName = (TextView)
v.findViewById(R.id.universityName);
universityName.setText(qualification.getUniversity());
TextView year1 = (TextView) v.findViewById(R.id.year1);
year1.setText(qualification.getYear());
course.setVisibility(View.VISIBLE);
university.setVisibility(View.VISIBLE);
year.setVisibility(View.VISIBLE);
return v;
}
}

you need to provide custom height of the listView.
<ListView
.....
android:layout_height="150dp"/>

Just use your custom ListView for this.
Create java file MyListView
public class MyListView extends ListView {
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
#Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
and in your layout replace your listview for this:
<yourpackagename.MyListView
...
android:layout_width="match_parent"
android:layout_height="wrap_content"
... />

Related

Change gravity of list item in Android results in a exception

I have a listview with CursorAdapter (not simplecursordadpter) and I am trying to change the gravity of my list item.
The problems seems to be at line:
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) row.getLayoutParams();
Here is my xml row item list:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:minWidth="100dp"
android:background="#drawable/selector_items"
android:descendantFocusability="blocksDescendants"
android:padding="3dp"
android:layout_margin="2dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:minWidth="280dp"
android:background="#drawable/bolha_b"
android:layout_gravity="start"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="#+id/text_tit_mg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shadowColor="#color/textShadow"
android:shadowDx="1"
android:shadowDy="1"
android:text="teste"
android:layout_weight="1"
android:layout_gravity="center_horizontal"
android:paddingRight="5dp"
android:paddingLeft="5dp"
android:layout_margin="5dp"
android:textColor="#color/black"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="#+id/img_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="#drawable/bin"
android:clickable="true"
android:layout_gravity="right"
android:layout_weight="0"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:layout_marginLeft="5dp"
android:text="De:"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#color/black"
android:textStyle="bold"
/>
<TextView
android:id="#+id/txtfrom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shadowColor="#color/textShadow"
android:layout_marginLeft="5dp"
android:text="nomefrom"
android:lines="1"
android:singleLine="true"
android:ellipsize="end"
android:textColor="#color/black"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<net.techabout.medappointment.TextViewFixTouchConsume
android:id="#+id/text1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginLeft="5dp"
android:shadowColor="#color/textShadow"
android:shadowDx="1"
android:shadowDy="1"
android:text=""
android:textColorLink="#color/colorBackground"
android:layout_weight="1"
android:textColor="#040404"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="#+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:text=""
android:layout_marginRight="5dp"
android:textColor="#999"
android:textAppearance="?android:attr/textAppearanceSmall" />
<Button
android:id="#+id/but_answer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:text="Responder"
android:background="#drawable/greenbutton"
style="#style/MyButtonStyleSmall"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
</LinearLayout>
I am doing:
public View getView(int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) row.getLayoutParams();
if (position % 2 == 0) {
row.setBackgroundResource(R.drawable.bolha_a);//green
params.gravity = Gravity.END;
row.setLayoutParams(params);
row.setPadding(50, 10, 20, 10);
} else {
row.setBackgroundResource(R.drawable.bolha_b);//white
params.gravity = Gravity.START;
row.setLayoutParams(params);
row.setPadding(30, 10, 30, 10);
}
return row;
}
But I get an exception saying:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.techabout.medappointment, PID: 11498
java.lang.ClassCastException: android.widget.AbsListView$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
at net.techabout.medappointment.MessagesCursorAdapter.getView(MessagesCursorAdapter.java:95)
at android.widget.AbsListView.obtainView(AbsListView.java:2346)
at android.widget.ListView.makeAndAddView(ListView.java:1875)
at android.widget.ListView.fillSpecific(ListView.java:1354)
at android.widget.ListView.layoutChildren(ListView.java:1674)
at android.widget.AbsListView.onLayout(AbsListView.java:2148)
Any help, please. Here is the complete code:
public class MessagesCursorAdapter extends CursorAdapter {
/**
* Cache of the children views
*/
public static class ViewHolder {
public final Button butAnswer;
public ImageView imgDelete;
public final TextView mTitle;
public final TextView mMsgFrom;
public final TextView mMsg;
public final TextView mTime;
public ViewHolder(View view) {
mTitle = (TextView) view.findViewById(R.id.text_tit_mg);
mMsgFrom = (TextView) view.findViewById(R.id.txtfrom);
mMsg = (TextView) view.findViewById(R.id.text1);
mTime = (TextView) view.findViewById(R.id.text2);
}
}
public MessagesCursorAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
}
#Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
int layoutId = R.layout.msg_list_item;
View view = LayoutInflater.from(context).inflate(layoutId, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
return view;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) row.getLayoutParams();
if (position % 2 == 0) {
row.setBackgroundResource(R.drawable.bolha_a);//green
params.gravity = Gravity.END;
row.setLayoutParams(params);
row.setPadding(50, 10, 20, 10);
} else {
row.setBackgroundResource(R.drawable.bolha_b);//white
params.gravity = Gravity.START;
row.setLayoutParams(params);
row.setPadding(30, 10, 30, 10);
}
return row;
}
#Override
public void bindView(View view, Context context, final Cursor cursor) {
ViewHolder viewHolder = (ViewHolder) view.getTag();
String temp = cursor.getString(cursor.getColumnIndexOrThrow(DataProvider.COL_TIT));
viewHolder.mTitle.setText(temp);
temp = cursor.getString(cursor.getColumnIndexOrThrow(DataProvider.COL_MSG));
}
}
Change LinearLayout.LayoutParams to AbsListView.LayoutParams.

Spinner Visibility

I've a strange problem with my custom spinner. My implementation is to hide the spinner and only fire the choices whenever i click a button so my spinner visibility is set to INVISIBLE and only fire a list of choices and assign the selected value back to a TextView. My code works only in emulator but when i went to my actual device the list of choices is not opened and only the default value is selected back to my textview. I've tried to set spinner visibility to Visible. This time i got the choices. I remember i have another implementation with the visibility is set to INVISIBLE and it worked as desired. Any clues?
XML Layout:
<?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:background="#EEE8E0"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="vertical"
android:weightSum="100" >
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#E69100" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="100"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="100dp"
android:background="#ffffff"
android:orientation="horizontal" >
<ImageView
android:id="#+id/attach4"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:clickable="true"
android:scaleType="fitXY"
android:src="#drawable/attach" />
<ImageView
android:id="#+id/attach3"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:clickable="true"
android:scaleType="fitXY"
android:src="#drawable/attach" />
<ImageView
android:id="#+id/attach2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:layout_weight="1"
android:clickable="true"
android:scaleType="fitXY"
android:src="#drawable/attach" />
<ImageView
android:id="#+id/attach1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:clickable="true"
android:scaleType="fitXY"
android:src="#drawable/attach" />
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true" >
<View
android:id="#+id/view1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_centerInParent="true"
android:background="#222222"
android:visibility="invisible" />
<EditText
android:id="#+id/addtitle"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_below="#+id/selecttype"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="#drawable/edittextback"
android:gravity="right|center_vertical"
android:hint="عنوان الأعلان"
android:inputType="text"
android:lines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#444545"
android:textSize="17dp" >
</EditText>
<EditText
android:id="#+id/addbrief"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_below="#+id/addtitle"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="#drawable/edittextback"
android:gravity="right|center_vertical"
android:hint="المواصفات"
android:inputType="text"
android:lines="4"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#444545"
android:textSize="17dp" />
<EditText
android:id="#+id/addprice"
android:layout_width="250dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_below="#+id/addbrief"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="#drawable/edittextback"
android:gravity="right|center_vertical"
android:hint="السعر"
android:inputType="number"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#444545"
android:textSize="17dp" />
<Spinner
android:id="#+id/addmoney"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_alignLeft="#+id/addbrief"
android:layout_alignTop="#+id/addprice"
android:layout_toLeftOf="#+id/addprice"
android:background="#drawable/edittextback"
android:entries="#array/country_arrays"
android:gravity="center_horizontal|center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:prompt="#string/country_prompt"
android:textColor="#444545"
android:textSize="17dp" />
<EditText
android:id="#+id/addkilometrage"
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_alignLeft="#+id/addprice"
android:layout_alignRight="#+id/addprice"
android:layout_below="#+id/addprice"
android:layout_marginTop="10dp"
android:background="#drawable/edittextback"
android:gravity="right|center_vertical"
android:hint="المسافة المقطوعة"
android:inputType="number"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#444545"
android:textSize="17dp" />
<Spinner
android:id="#+id/addkilo"
android:layout_width="250dp"
android:layout_height="50dp"
android:layout_alignLeft="#+id/addmoney"
android:layout_alignTop="#+id/addkilometrage"
android:layout_toLeftOf="#+id/addprice"
android:background="#drawable/edittextback"
android:entries="#array/kilo"
android:gravity="center_vertical|center_horizontal"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:prompt="#string/country_prompt"
android:textColor="#444545"
android:textSize="17dp" />
<Spinner
android:id="#+id/Spinner01"
android:layout_width="250dp"
android:layout_height="50dp"
android:layout_alignLeft="#+id/addkilo"
android:layout_alignRight="#+id/addkilometrage"
android:layout_below="#+id/addkilometrage"
android:layout_marginTop="10dp"
android:background="#drawable/edittextback"
android:entries="#array/year"
android:gravity="right|center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:prompt="#string/country_prompt"
android:textColor="#444545"
android:textSize="17dp" />
<EditText
android:id="#+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignLeft="#+id/Spinner01"
android:layout_alignRight="#+id/Spinner01"
android:layout_below="#+id/Spinner01"
android:layout_marginTop="10dp"
android:background="#drawable/edittextback"
android:ems="10"
android:gravity="right|center_vertical"
android:hint="رقم الهاتف/الجوال"
android:inputType="number"
android:lines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textColor="#444545"
android:textSize="17dp" />
<Button
android:id="#+id/continueregist"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignLeft="#+id/EditText01"
android:layout_alignRight="#+id/addprice"
android:layout_below="#+id/EditText01"
android:layout_marginTop="26dp"
android:background="#drawable/green_buttons"
android:text="Continue"
android:textColor="#ffffff"
android:textSize="19dp"
android:textStyle="bold" />
<Spinner
android:id="#+id/spinner_type"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:visibility="invisible" />
<Spinner
android:id="#+id/spinner_model"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:visibility="invisible" />
<ImageView
android:id="#+id/selecttype"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:layout_alignRight="#+id/addtitle"
android:layout_marginTop="20dp"
android:scaleType="fitXY"
android:src="#drawable/sell" />
<TextView
android:id="#+id/textcattype"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="#+id/spinner_type"
android:layout_marginRight="21dp"
android:layout_toLeftOf="#+id/selecttype"
android:text=""
android:textSize="19dp" />
<ImageView
android:id="#+id/selectmodel"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignRight="#+id/addmoney"
android:layout_alignTop="#+id/selecttype"
android:scaleType="fitXY"
android:src="#drawable/buy" />
<TextView
android:id="#+id/textcarmodel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="#+id/selectmodel"
android:layout_toLeftOf="#+id/selectmodel"
android:text=""
android:textSize="19dp" />
</RelativeLayout>
</LinearLayout>
</ScrollView>
<RelativeLayout
android:id="#+id/mainaddshekh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#222222"
android:orientation="vertical" >
</RelativeLayout>
Java Class:
public class Sell_Class extends Activity implements OnClickListener {
Spinner Type, Model;
MyAdapter adapter1;
MyAdapter2 adapter2;
EditText cartypeedit;
ImageView cartype, carmodel;
TextView cartypetext, carmodeltext;
String CarType="",CarModel;
int arr_images[] = {
R.drawable.hy,
R.drawable.hy
};
final String[] CarsType = new String[] {
"هيونداي", "هوندا",
};
final String[] Hyundai = new String[] {
"أكسنت", "أكسيل"
};
final String[] Honda = new String[] {
"أكورد", "سيفيك",
};
#Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mainsell);
Type = (Spinner) findViewById(R.id.spinner_type);
Model = (Spinner) findViewById(R.id.spinner_model);
cartype = (ImageView) findViewById(R.id.selecttype);
carmodel = (ImageView) findViewById(R.id.selectmodel);
cartypetext = (TextView) findViewById(R.id.textcattype);
carmodeltext = (TextView) findViewById(R.id.textcarmodel);
cartype.setOnClickListener(this);
carmodel.setOnClickListener(this);
Type.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// get spinner value
cartypetext.setText(CarsType[arg2]);
CarType = CarsType[arg2];
CarModel="";
carmodeltext.setText("");
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
Model.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if (CarType.contentEquals("هيونداي")) {
carmodeltext.setText(Hyundai[arg2]);
CarModel = Hyundai[arg2];
}
if (CarType.contentEquals("هوندا")) {
carmodeltext.setText(Honda[arg2]);
CarModel = Honda[arg2];
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
#Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.selecttype:
adapter1 = new MyAdapter(this, CarsType, arr_images);
Type.setAdapter(adapter1);
Type.performClick();
cartypetext.setText("");
break;
case R.id.selectmodel:
if (CarType.contentEquals("")) {
Toast.makeText(getApplicationContext(),
"Please select car first", Toast.LENGTH_LONG).show();
}
else
{
if (CarType.contentEquals("هيونداي")) {
adapter2 = new MyAdapter2(Sell_Class.this, Hyundai);
Model.setAdapter(adapter2);
Model.performClick();
carmodeltext.setText("");
}
if (CarType.contentEquals("هوندا")) {
adapter2 = new MyAdapter2(Sell_Class.this, Honda);
Model.setAdapter(adapter2);
Model.performClick();
carmodeltext.setText("");
}
}
break;
}
}
}
MyAdapter:
public class MyAdapter extends BaseAdapter {
Context c;
String[] title;
int[] pic;
LayoutInflater inflater;
Typeface font;
int arr_images[] = {
R.drawable.hy,
R.drawable.hy
};
public MyAdapter(Context context, String[] title, int[] pic) {
super();
this.c = context;
this.title = title;
this.pic = pic;
inflater = LayoutInflater.from(context);
// font = Typeface.createFromAsset(context.getAssets(),"fonts/khalaadsara.ttf");
}
#Override
public int getCount() {
return title.length;
}
public class ViewHolder {
TextView cat;
ImageView icon;
}
#Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView== null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.spinnertext, null);
holder.cat = (TextView) convertView.findViewById(R.id.titlesub);
holder.icon = (ImageView) convertView.findViewById(R.id.imageView1);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder)convertView.getTag();
}
holder.cat.setText(title[position]);
// holder.cat.setTypeface(font);
holder.icon.setImageResource(arr_images[position]);
return convertView;
}
#Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
}

ListView row containing another ListView

I am using ListView inside the row of another ListView. In wishlist.xml, I have one ListView. That items were in wishlist_items.xml, In that wishlist_items also having one more listView. that was designed in wishlist_items_advisors.xml. My problem is that send ListView is showing only one item. Can any one tell me how to fix this?
And the adapters also given below.
wishlist.xml
<LinearLayout
android:id="#+id/logo_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="#+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp"
android:contentDescription="#string/app_name" />
<LinearLayout
android:id="#+id/title_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="#drawable/titleredbg"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="#+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="#string/wishlist_title"
android:textColor="#fff"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="10dp"
android:orientation="horizontal" >
<Button
android:id="#+id/help"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:contentDescription="#string/app_name" />
<Button
android:id="#+id/add_person"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="10dp"
android:contentDescription="#string/app_name"
android:padding="5dp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:weightSum="100" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="57"
android:orientation="horizontal"
android:weightSum="100" >
<TextView
android:id="#+id/wishlist_name_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="40"
android:text="#string/wishlist_name"
android:textColor="#color/Black" />
<TextView
android:id="#+id/wishlist_email_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="60"
android:text="#string/wishlist_email"
android:textColor="#color/Black" />
</LinearLayout>
<TextView
android:id="#+id/wishlist_relation_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="43"
android:text="#string/wishlist_relation"
android:textColor="#color/Black" />
</LinearLayout>
<LinearLayout
android:id="#+id/items_footer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:orientation="vertical"
android:weightSum="100" >
<ListView
android:id="#+id/listView_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#null"
android:dividerHeight="4dp"
android:visibility="visible" >
</ListView>
<LinearLayout
android:id="#+id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="#string/no_data"
android:textColor="#000" >
</TextView>
</LinearLayout>
</LinearLayout>
</LinearLayout>
wishlist_items.xml
<TextView
android:id="#+id/hr1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_marginTop="5dp"
android:background="#D2D2D2" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:weightSum="100" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="57"
android:orientation="horizontal"
android:weightSum="100" >
<TextView
android:id="#+id/wishlist_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="40"
android:ellipsize="end"
android:maxLines="2"
android:text="John John John John John John"
android:textColor="#color/Black" />
<TextView
android:id="#+id/wishlist_email"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="60"
android:ellipsize="end"
android:maxLines="2"
android:text="krishna.mondeddu#gmail.com krishna.mondeddu#gmail.com"
android:textColor="#color/Black" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="43"
android:orientation="horizontal"
android:weightSum="100" >
<TextView
android:id="#+id/wishlist_relation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="60"
android:ellipsize="end"
android:maxLines="2"
android:text="Birthday Birthday vv Birthday Birthday"
android:textColor="#color/Black" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="40" >
<ImageButton
android:id="#+id/editButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_toLeftOf="#+id/deleteButton"
android:background="#drawable/wishlistediticon"
android:contentDescription="#string/app_name" />
<ImageButton
android:id="#+id/deleteButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:contentDescription="#string/app_name" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
<TextView
android:id="#+id/hr4"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#D2D2D2" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:paddingBottom="5dp"
android:paddingTop="5dp" >
<TextView
android:id="#+id/gift_advisor_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="#string/wishlist_getadvisor"
android:textColor="#color/Black" />
</LinearLayout>
<TextView
android:id="#+id/hr1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#D2D2D2" />
<ListView android:id="#+id/listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
></ListView>
<TextView
android:id="#+id/hr5"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#D2D2D2" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="#fff"
android:paddingTop="5dp"
android:paddingBottom="5dp"
>
<ImageButton
android:id="#+id/invite_advisor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:contentDescription="#string/app_name" />
</RelativeLayout>
</LinearLayout>
wishlist_items_advisors.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:baselineAligned="false"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:weightSum="100" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="57"
android:orientation="horizontal"
android:weightSum="100" >
<TextView
android:id="#+id/advisor_name_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="40"
android:ellipsize="end"
android:maxLines="2"
android:text="John John"
android:textColor="#color/Black" />
<TextView
android:id="#+id/advisor_email_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="60"
android:ellipsize="end"
android:maxLines="2"
android:text="krishna."
android:textColor="#color/Black" />
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="43" >
<TextView
android:id="#+id/status_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_toLeftOf="#+id/deleteButton"
android:text="Accept" />
<ImageButton
android:id="#+id/deleteButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:contentDescription="#string/app_name" />
</RelativeLayout>
</LinearLayout>
CustomAdapter
public class CustomAdapter extends BaseAdapter{
private String guestIds[]=null;
private String names[]=null;
private String emails[] = null;
private String relationships[] = null;
private String occasions[] = null;
DisplayImageOptions doption=null;
private ImageLoadingListener animateFirstListener =null;
private Context context=null;
public CustomAdapter(Activity activity,String[] guestId,String[] name,String[] email,String[] relationship, String[] occasion)
{
this.context=activity;
this.guestIds = guestId;
this.names =name;
this.emails = email;
this.relationships = relationship;
this.occasions = occasion;
doption=new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.ic_empty).showImageOnFail(R.drawable.ic_error).showStubImage(R.drawable.ic_stub).cacheInMemory(true).cacheOnDisc(true).displayer(new RoundedBitmapDisplayer(5)).build();
animateFirstListener = new AnimateFirstDisplayListener();
}
#Override
public int getViewTypeCount() {
return 2;
}
#Override
public int getItemViewType(int position) {
//CustomAdapter item = (CustomAdapter) getItem(position);
if (isItemAnAd(position)) {
return 0;
} else {
return 1;
}
}
private boolean isItemAnAd(int position) {
// Place an ad at the first
return (position == 0);
}
#Override
public Object getItem(int arg0) {
return arg0;
}
#Override
public long getItemId(int arg0) {
return arg0;
}
#Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder holder;
if (convertView == null) {
view = ((Activity) context).getLayoutInflater().inflate(R.layout.wishlist_items, parent, false);
holder = new ViewHolder();
holder.wishlistName = (TextView) view.findViewById(R.id.wishlist_name);
holder.wishlistEmail = (TextView) view.findViewById(R.id.wishlist_email);
holder.wishlistRelation = (TextView) view.findViewById(R.id.wishlist_relation);
holder.wishGiftAdvisorText = (TextView) view.findViewById(R.id.gift_advisor_text);
holder.advisorListview = (ListView) view.findViewById(R.id.listView);
holder.inviteAdvisor = (ImageButton) view.findViewById(R.id.invite_advisor);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.wishlistName.setText(names[position]);
holder.wishlistEmail.setText(emails[position]);
holder.wishlistRelation.setText(relationships[position]);
holder.wishGiftAdvisorText.setText(getResources().getString( R.string.wishlist_getadvisor)+" "+names[position]+"'s "+getResources().getString( R.string.wishlist_title) );
GuestId = guestIds[position];
holder.wishlistName.setTypeface(tf);
holder.wishlistEmail.setTypeface(tf);
holder.wishlistRelation.setTypeface(tf);
holder.wishGiftAdvisorText.setTypeface(tf);
if(occasions[position].contains("[")) {
try {
array = new JSONArray(occasions[position]);
System.out.println(array.toString(2));
//loadOccasionData(array);
// TODO Auto-generated method stub
if(array!= null) {
advisorIds = new String[array.length()];
advisorNames = new String[array.length()];
advisorEmails = new String[array.length()];
advisorRelationships = new String[array.length()];
advisorStatuses = new String[array.length()];
for (int i = 0; i < array.length(); i++) {
JSONObject c;
try {
c = array.getJSONObject(i);
// Storing each json item in variable
advisorIds[i] = c.getString("advisor_id");
advisorNames[i] = c.getString("name");
advisorEmails[i] = c.getString("email");
advisorRelationships[i] = c.getString("relationship");
advisorStatuses[i] = c.getString("status");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
CustomAdvisorAdapter adapter = new CustomAdvisorAdapter(WishList.this,
advisorIds, advisorNames, advisorEmails, advisorRelationships , advisorStatuses);
holder.advisorListview.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
holder.advisorListview.setAdapter(null);
}
return view;
}
private class AnimateFirstDisplayListener extends SimpleImageLoadingListener {
final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>());
#Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
if (loadedImage != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, 500);
displayedImages.add(imageUri);
}
}
}
}
private class ViewHolder {
public TextView wishlistName;
public TextView wishlistEmail;
public TextView wishlistRelation;
public TextView wishGiftAdvisorText;
public ListView advisorListview;
public ImageButton inviteAdvisor;
}
#Override
public int getCount() {
// TODO Auto-generated method stub
return names.length;
}
}
CustomAdvisorAdapter
public class CustomAdvisorAdapter extends BaseAdapter{
private String advisorIds[]=null;
private String advisorNames[]=null;
private String advisorEmails[] = null;
private String advisorRelationships[] = null;
private String advisorStatuses[] = null;
DisplayImageOptions doption=null;
private ImageLoadingListener animateFirstListener =null;
private Context context=null;
public CustomAdvisorAdapter(Activity activity,String[] advisorId,String[] advisorName,String[] advisorEmail,String[] advisorRelationship, String[] advisorStatus)
{
this.context=activity;
this.advisorIds = advisorId;
this.advisorNames =advisorName;
this.advisorEmails = advisorEmail;
this.advisorRelationships = advisorRelationship;
this.advisorStatuses = advisorStatus;
doption=new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.ic_empty).showImageOnFail(R.drawable.ic_error).showStubImage(R.drawable.ic_stub).cacheInMemory(true).cacheOnDisc(true).displayer(new RoundedBitmapDisplayer(5)).build();
animateFirstListener = new AnimateFirstDisplayListener();
}
#Override
public Object getItem(int arg0) {
return arg0;
}
#Override
public long getItemId(int arg0) {
return arg0;
}
#Override
public View getView(final int position, View convertView, ViewGroup parent) {
View viewAdvisor = convertView;
final ViewHolder advisorHolder;
if (convertView == null) {
viewAdvisor = ((Activity) context).getLayoutInflater().inflate(R.layout.wishlist_items_advisor, parent, false);
advisorHolder = new ViewHolder();
advisorHolder.advisorNameText = (TextView) viewAdvisor.findViewById(R.id.advisor_name_text);
advisorHolder.advisorEmailText = (TextView) viewAdvisor.findViewById(R.id.advisor_email_text);
advisorHolder.statusText = (TextView) viewAdvisor.findViewById(R.id.status_text);
viewAdvisor.setTag(advisorHolder);
} else {
advisorHolder = (ViewHolder) viewAdvisor.getTag();
}
advisorHolder.advisorNameText.setText(advisorNames[position]);
advisorHolder.advisorEmailText.setText(advisorEmails[position]);
advisorHolder.statusText.setText(advisorStatuses[position]);
advisorHolder.advisorNameText.setTypeface(tf);
advisorHolder.advisorEmailText.setTypeface(tf);
advisorHolder.statusText.setTypeface(tf);
return viewAdvisor;
}
private class AnimateFirstDisplayListener extends SimpleImageLoadingListener {
final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>());
#Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
if (loadedImage != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, 500);
displayedImages.add(imageUri);
}
}
}
}
private class ViewHolder {
public TextView advisorNameText;
public TextView advisorEmailText;
public TextView statusText;
}
#Override
public int getCount() {
// TODO Auto-generated method stub
return names.length;
}
}
It's not possible to make a scrollable view inside a scrollable view. But as a work around this, and only in case that this listviews doesn't take much memory if all views are loaded.
you can use this
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class NonScrollableListView extends ListView {
public NonScrollableListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
#Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// Do not use the highest two bits of Integer.MAX_VALUE because they are
// reserved for the MeasureSpec mode
int heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightSpec);
getLayoutParams().height = getMeasuredHeight();
}
}
Again, it's not good to use this workaround
you will use this non Scrollable listview in the child.xml layout by adding it as a customized UI component
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.youpackage.uiutils.NonScrollableListView
android:id="#+id/non_scrollable_listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
You can ExpandableListView in place of making custom view also for data handling you can use ExpandableListAdapter.

Change background color of list items in a custom list view

I have a custom list View that contains 7 text views..I have created a custom linear layout for that..And then I'm populating it...What i want to do is set a custom color...When the user clicks on the list item and keep it highlighted till he clicks another item...How will i do that??...
This is the custom layout for listitems...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#+id/LLtv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#drawable/colors"
android:cacheColorHint="#00000000" >
<TextView
android:id="#+id/TvVLdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:paddingLeft="8dp"
android:paddingTop="8dp"
android:textColor="#000000"
android:textSize="15dp" />
<TextView
android:id="#+id/TvVLtime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="#+id/TvVLdate"
android:paddingLeft="8dp"
android:paddingTop="8dp"
android:textColor="#000000"
android:textSize="15dp" />
<TextView
android:id="#+id/TvVLcardno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="#+id/TvVLtime"
android:paddingLeft="8dp"
android:paddingTop="8dp"
android:textColor="#000000"
android:textSize="15dp" />
<TextView
android:id="#+id/TvVLsaletext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="#+id/TvVLdate"
android:paddingLeft="8dp"
android:paddingTop="8dp"
android:text="Sale transaction:Rs"
android:textColor="#000000"
android:textSize="15dp" />
<TextView
android:id="#+id/TvVLamnt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="#+id/TvVLsaletext"
android:layout_toRightOf="#+id/TvVLsaletext"
android:paddingTop="8dp"
android:textColor="#000000"
android:textSize="15dp" />
<TextView
android:id="#+id/TvVLtexttip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="#+id/TvVLamnt"
android:layout_toRightOf="#+id/TvVLamnt"
android:paddingLeft="8dp"
android:paddingTop="8dp"
android:text="Tip:Rs"
android:textColor="#000000"
android:textSize="15dp" />
<TextView
android:id="#+id/TvVLtip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="#+id/TvVLtexttip"
android:layout_toRightOf="#+id/TvVLtexttip"
android:paddingTop="8dp"
android:textColor="#000000"
android:textSize="15dp" />
</RelativeLayout>
And my list layout..
<?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="match_parent"
android:background="#E0E0E0"
android:orientation="vertical" >
<include
android:id="#+id/Hvoid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
layout="#layout/header" />
<RelativeLayout
android:id="#+id/RLvoid"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_below="#+id/Hvoid"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="12dp"
android:text="Main Menu"
android:textColor="#000000"
android:textSize="15dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:src="#drawable/ivoid" />
</RelativeLayout>
<View
android:id="#+id/Vvoidtop"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:layout_below="#+id/RLvoid"
android:background="#android:color/darker_gray" />
<ListView
android:id="#+id/Lvvoid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="#+id/Bconfirm"
android:layout_below="#+id/Vvoidtop"
android:background="#E0E0E0"
android:cacheColorHint="#00000000"
android:divider="#android:color/transparent"
android:dividerHeight="20dp" >
</ListView>
<Button
android:id="#+id/Bconfirm"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_above="#+id/Vvoidbot"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="#drawable/cbconfirm" />
<View
android:id="#+id/Vvoidbot"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:layout_above="#+id/Tvfooter"
android:background="#android:color/darker_gray" />
<TextView
android:id="#+id/Tvfooter"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:text="© India Transact Services Ltd."
android:textColor="#000000"
android:textSize="15dp" />
</RelativeLayout>
And the drawable colors xml file...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected Item -->
<item android:drawable="#android:color/darker_gray" android:state_selected="true"/>
<item android:drawable="#android:color/darker_gray" android:state_focused="true"/>
<!-- Default Item -->
<item android:drawable="#android:color/white" />
</selector>
And my code....
public class Void extends Activity {
ListView lmenu;
View Vlistselector;
String s;
View layout;
#Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.voidlist);
Menu Menu_data[] = new Menu[] {
new Menu("29/09/2012", "05:40", "2234 xxxx xxxx 1990", "100",
"10"),
new Menu("09/12/2012", "00:34", "2234 xxxx xxxx 1990", "99",
"12"),
new Menu("29/09/2012", "12:20", "2234 xxxx xxxx 1990", "111",
"0"),
new Menu("31/01/2012", "13:40", "2234 xxxx xxxx 1990", "105",
"19"),
new Menu("13/10/2012", "01:40", "2234 xxxx xxxx 1990", "203",
"1"),
new Menu("23/11/2012", "07:40", "2234 xxxx xxxx 1990", "44",
"5") };
MenuAdapter adapter = new MenuAdapter(this, R.layout.voidlisttext,
Menu_data);
lmenu = (ListView) findViewById(R.id.Lvvoid);
lmenu.setAdapter(adapter);
// lmenu.setSelector(R.drawable.listcolorselector);
lmenu.setOnItemClickListener(new OnItemClickListener() {
#Override
public void onItemClick(AdapterView<?> ada, View v, int position,
long id) {
// TODO Auto-generated method stub
/*
* v.setSelected(true);
*/
v.setBackgroundColor(Color.parseColor("#FCD5B5"));
if (!(Vlistselector == null) && Vlistselector != v)
Vlistselector.setBackgroundColor(Color
.parseColor("#EEEEEE"));
Vlistselector = v;
Toast.makeText(getApplicationContext(),
String.valueOf(position + 1), Toast.LENGTH_LONG).show();
}
});
findViewById(R.id.BLogout).setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}
public class Menu {
public String date;
public String time;
public String cardno;
public String amnt;
public String tip;
public Menu() {
super();
}
public Menu(String date, String time, String cardno, String amnt,
String tip) {
super();
this.date = date;
this.time = time;
this.cardno = cardno;
this.amnt = amnt;
this.tip = tip;
}
}
public class MenuAdapter extends ArrayAdapter<Menu> {
Context context;
int layoutResourceId;
Menu data[] = null;
public MenuAdapter(Context context, int layoutResourceId, Menu[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
MenuHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context)
.getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new MenuHolder();
holder.date = (TextView) row.findViewById(R.id.TvVLdate);
holder.time = (TextView) row.findViewById(R.id.TvVLtime);
holder.cardno = (TextView) row.findViewById(R.id.TvVLcardno);
holder.amnt = (TextView) row.findViewById(R.id.TvVLamnt);
holder.tip = (TextView) row.findViewById(R.id.TvVLtip);
row.setTag(holder);
} else {
holder = (MenuHolder) row.getTag();
}
Menu Menu = data[position];
holder.date.setText(Menu.date);
holder.time.setText(Menu.time);
holder.cardno.setText(Menu.cardno);
holder.amnt.setText(Menu.amnt);
holder.tip.setText(Menu.tip);
return row;
}
public class MenuHolder {
TextView date;
TextView time;
TextView cardno;
TextView amnt;
TextView tip;
}
}
}
What i want is instead of the color darker gray set a new custom color....
Have i done it the right way or is there any other way to do it?????
View listColor;//declare this at the top
Do it onclick of listviewitem
#Override
protected void onListItemClick(ListView list, View view, int position, long id) {
if(listColor!=null){
listColor.setBackgroundColor(Color.BLACK);
listColor=view;
}else{
listColor=view;
}
listColor.setBackgroundColor(Color.BLUE); //intead of blue you can change it to something you want like darkergray
//show toast on the clicked item
String selectedValue = (String) getListAdapter().getItem(position);
Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();
}
For this scenario you should use setBackground() at runtime instead of relying on selector.

ResourceNotFoundException at custom's listview adapter

I have such a activity with my list:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="#+id/altOrderslist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
/>
</RelativeLayout>
and I want to make custom listview with the items:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip" >
<!-- ListRow Left sied Thumbnail image -->
<LinearLayout
android:id="#+id/thumbnail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="5dip"
android:padding="3dip" >
<TextView
android:id="#+id/altOrderId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rihanna Love the way lie"
android:textColor="#040404"
android:textSize="15dip"
android:textStyle="bold"
android:typeface="sans" />
</LinearLayout>
<!-- Title Of Song -->
<!-- Artist Name -->
<TextView
android:id="#+id/altOrderTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dip"
android:layout_toRightOf="#+id/thumbnail"
android:text="Just gona stand there and ..."
android:textColor="#343434"
android:textSize="10dip" />
<!-- Rightend Duration -->
<TextView
android:id="#+id/altOrderStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="5dip"
android:gravity="right"
android:textColor="#10bcc9"
android:textSize="10dip"
android:textStyle="bold" />
<!-- Rightend Arrow -->
<TextView
android:id="#+id/altOrderPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="#+id/thumbnail"
android:text="Rihanna Love the way lie"
android:textColor="#040404"
android:textSize="15dip"
android:textStyle="bold"
android:typeface="sans" />
</RelativeLayout>
This is my adapter class:
public class OrderAdapter extends ArrayAdapter<Order>{
Context context;
int layoutResourceId;
List<Order> orders = null;
public OrderAdapter(Context context, int layoutResourceId, List<Order> orders) {
super(context, layoutResourceId, orders);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.orders = orders;
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
OrderHolder holder = null;
if(row == null)
{
Log.i("I'm in OrderAdapter",Integer.toString(layoutResourceId));
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(R.layout.dash_alt_item, parent, false);
Log.i("I'm in OrderAdapter",Integer.toString(layoutResourceId));
holder = new OrderHolder();
holder.orderId = (TextView)row.findViewById(R.id.altOrderId);
holder.orderTitle = (TextView)row.findViewById(R.id.altOrderTitle);
holder.orderStatus = (TextView)row.findViewById(R.id.altOrderStatus);
holder.orderPrice = (TextView)row.findViewById(R.id.altOrderPrice);
//row.setTag(holder);
}
else
{
holder = (OrderHolder)row.getTag();
}
Order order = orders.get(position);
holder.orderId.setText(order.getOrderid());
holder.orderTitle.setText(order.getTitle());
holder.orderStatus.setText(order.getProcess_status().getProccessStatusTitle());
holder.orderPrice.setText(Float.toString(order.getPrice()));
return row;
}
static class OrderHolder
{
TextView orderId;
TextView orderTitle;
TextView orderStatus;
TextView orderPrice;
}
}
And how I use it in my Activity:
public class DashboardActivityAlt extends Activity{
static List<Order> orders;
List<Order> forPrint = new ArrayList<Order>();
private ListView listView1;
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dash_alt);
try {
this.getOrderList("1", "10"); **// filling the forPrint list**
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
OrderAdapter adapter = new OrderAdapter(this,
R.layout.dash_alt_item, **forPrint**);
listView1 = (ListView)findViewById(R.id.altOrderslist);
listView1.setAdapter(adapter);
}
And I get ResourceNotFoundException at the line holder.orderId.setText(order.getOrderid());
What is the reason of it?
Make sure you are not passing an int to that method. Cast it to a String and will start to work as expected.
The reason is setText() is overloaded it has versions:
setText(int resId)
setText(String text)

Categories

Resources