slr560
سه شنبه 07 مرداد 1393, 06:53 صبح
سلام دوستان .
بعد از اینکه UI خودم به صورت لی اوت بندی و تک تک ساختم یه سری مشکلات پیش اومد
الان میخوام از لیست استفاده کنم
این نمای یک سطر از لیست هست:
121687
شنبه تا جمعه
۷تا سطر داره
این xml یک سطر:
<?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="60dp"
style="@style/CustomStyleList">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:id="@+id/checkBox"/>
<TextView
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="شنبه"
android:layout_centerInParent="true"
android:layout_marginRight="2dp"
android:layout_toLeftOf="@id/checkBox"
style="@style/CustomTextView2"/>
<TextView
android:id="@+id/date"
android:text="23/5/2014"
android:textSize="15sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
style="@style/CustomTextView2"/>
<Spinner
android:id="@+id/food"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/date"
android:layout_marginRight="25dp"
style="@style/CustomTextView2"/>
</RelativeLayout>
بعدش اومدم set و get هارو تعریف کردم. به این صورت:
package ir.darabifard.daneshjo.model;
import android.widget.ArrayAdapter;
public class OtoItem {
private int chek;
private String day;
private String date;
private ArrayAdapter<String> food;
public OtoItem(int chek, String day, String date, ArrayAdapter<String> food) {
this.chek = chek;
this.day = day;
this.date = date;
this.food = food;
}
public int setChek(int num) {
return this.chek = num;
}
public int getChek() {
return this.chek;
}
public String setDays(String day) {
return this.day = day;
}
public String getDays() {
return this.day;
}
public String setDate(String date) {
return this.date = date;
}
public String getDate() {
return this.date;
}
public ArrayAdapter<String> setFood(ArrayAdapter<String> food) {
return this.food = food;
}
public ArrayAdapter<String> getFood() {
return this.food;
}
}
و در آخر آداپتور رو تعریف کردم. به این شکل:
package ir.darabifard.daneshjo.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.ArrayList;
import ir.darabifard.daneshjo.R;
import ir.darabifard.daneshjo.model.OtoItem;
public class OtoListAdapter extends BaseAdapter {
ArrayList<OtoItem> mOtoItems;
private Context mContext;
public OtoListAdapter(Context context, ArrayList<OtoItem> otoItems) {
this.mContext = context;
this.mOtoItems = otoItems;
}
@Override
public int getCount() {
return mOtoItems.size();
}
@Override
public Object getItem(int position) {
return mOtoItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(mContext.LAYOUT_INFLATER_SERVICE );
convertView = inflater.inflate(R.layout.oto_list_item, null);
}
CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);
TextView day = (TextView) convertView.findViewById(R.id.day);
TextView date = (TextView) convertView.findViewById(R.id.date);
Spinner food = (Spinner) convertView.findViewById(R.id.food);
day.setText(mOtoItems.get(position).getDays());
date.setText(mOtoItems.get(position).getDate());
food.setAdapter(mOtoItems.get(position).getFood()) ;
return convertView;
}
}
آیا این کدهایی که نوشتم درسته؟ حالا چجوری این آداپتور رو بدم به لیست و مقدار بهش بدم؟
ممنون میشم راهنمایی کنین
بعد از اینکه UI خودم به صورت لی اوت بندی و تک تک ساختم یه سری مشکلات پیش اومد
الان میخوام از لیست استفاده کنم
این نمای یک سطر از لیست هست:
121687
شنبه تا جمعه
۷تا سطر داره
این xml یک سطر:
<?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="60dp"
style="@style/CustomStyleList">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:id="@+id/checkBox"/>
<TextView
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="شنبه"
android:layout_centerInParent="true"
android:layout_marginRight="2dp"
android:layout_toLeftOf="@id/checkBox"
style="@style/CustomTextView2"/>
<TextView
android:id="@+id/date"
android:text="23/5/2014"
android:textSize="15sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
style="@style/CustomTextView2"/>
<Spinner
android:id="@+id/food"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@id/date"
android:layout_marginRight="25dp"
style="@style/CustomTextView2"/>
</RelativeLayout>
بعدش اومدم set و get هارو تعریف کردم. به این صورت:
package ir.darabifard.daneshjo.model;
import android.widget.ArrayAdapter;
public class OtoItem {
private int chek;
private String day;
private String date;
private ArrayAdapter<String> food;
public OtoItem(int chek, String day, String date, ArrayAdapter<String> food) {
this.chek = chek;
this.day = day;
this.date = date;
this.food = food;
}
public int setChek(int num) {
return this.chek = num;
}
public int getChek() {
return this.chek;
}
public String setDays(String day) {
return this.day = day;
}
public String getDays() {
return this.day;
}
public String setDate(String date) {
return this.date = date;
}
public String getDate() {
return this.date;
}
public ArrayAdapter<String> setFood(ArrayAdapter<String> food) {
return this.food = food;
}
public ArrayAdapter<String> getFood() {
return this.food;
}
}
و در آخر آداپتور رو تعریف کردم. به این شکل:
package ir.darabifard.daneshjo.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.ArrayList;
import ir.darabifard.daneshjo.R;
import ir.darabifard.daneshjo.model.OtoItem;
public class OtoListAdapter extends BaseAdapter {
ArrayList<OtoItem> mOtoItems;
private Context mContext;
public OtoListAdapter(Context context, ArrayList<OtoItem> otoItems) {
this.mContext = context;
this.mOtoItems = otoItems;
}
@Override
public int getCount() {
return mOtoItems.size();
}
@Override
public Object getItem(int position) {
return mOtoItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(mContext.LAYOUT_INFLATER_SERVICE );
convertView = inflater.inflate(R.layout.oto_list_item, null);
}
CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.checkBox);
TextView day = (TextView) convertView.findViewById(R.id.day);
TextView date = (TextView) convertView.findViewById(R.id.date);
Spinner food = (Spinner) convertView.findViewById(R.id.food);
day.setText(mOtoItems.get(position).getDays());
date.setText(mOtoItems.get(position).getDate());
food.setAdapter(mOtoItems.get(position).getFood()) ;
return convertView;
}
}
آیا این کدهایی که نوشتم درسته؟ حالا چجوری این آداپتور رو بدم به لیست و مقدار بهش بدم؟
ممنون میشم راهنمایی کنین