2 열의 식사와 서빙이 있으며 listview에 표시하고 싶습니다. 여기 목록보기의 2 열 표시 android
는 지금까지 시도했습니다 내용은 다음과 같습니다private ListView lv;
//private ArrayList<String> results = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.meal_result);
BreakFastLog info = new BreakFastLog(this);
info.open();
String data1 = info.getMealNameData();
String data2 = info.getServingData();
String[] inputData = data1.split(" ");
String[] inputData2 = data2.split(" ");
lv = (ListView) findViewById (R.id.lvBF);
ArrayList<HashMap<String, String[]>> mylistData =
new ArrayList<HashMap<String, String[]>>();
int[] columnIds = new int[] {
R.id.tvBreakfastMealContainer, R.id.tvBreakfastServingContainer};
HashMap<String, String[]> map = new HashMap<String, String[]>();
//initialize row data
map.put("Meal", inputData);
map.put("Serving", inputData2);
mylistData.add(map);
//lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, inputData));
SimpleAdapter arrayAdapter =
new SimpleAdapter(this, mylistData, R.layout.breakfast_listview_header,
new String[] {"Meal", "Serving"}, columnIds);
lv.setAdapter(arrayAdapter);
lv.setTextFilterEnabled(true);
info.close();
}
편집 :
class MyCustomAdapter extends BaseAdapter
{
String[] data_meal;
String[] data_serving;
MyCustomAdapter()
{
data_meal = null;
data_serving = null;
}
MyCustomAdapter(String[] meal, String[] serving)
{
data_meal = meal;
data_serving = serving;
}
public int getCount()
{
return data_meal.length;
}
public String getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = getLayoutInflater();
View row;
row = inflater.inflate(R.layout.breakfast_listview_header, parent, false);
TextView txtMeal = (TextView) row.findViewById (R.id.tvBreakfastMealContainer);
TextView txtServing = (TextView) row.findViewById (R.id.tvBreakfastServingContainer);
txtMeal.setText(data_meal[ position ]);
txtServing.setText(data_serving[ position ]);
return (row);
}
}
편집 : XML : 그들은 단지 하나에서만 표시되는
<?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"
android:background="@drawable/ihealthfirst" >
<!--
<TextView
android:id="@+id/tvBreakfastDateContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_weight="1" /> -->
<TextView
android:id="@+id/tvBreakfastMealContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_weight="2" />
<TextView
android:id="@+id/tvBreakfastServingContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:gravity="center_horizontal"
android:layout_weight="1" />
</LinearLayout>
그러나 열? 해당 레코드를 개별적으로 표시하는 방법을 알아내는 데 도움이됩니다. 감사.
여러 열에 대해'GridView'를 사용할 수 있습니다. –
하지만 Listview에서 수행하고 싶습니다. –
그런 다음 ListView에 사용자 정의 어댑터를 사용하고 각 행에 두 개의 열을 만들 수있는 각 행마다 맞춤 레이아웃을 사용하십시오. –