날씨 채널 응용 프로그램에서 사용되는 '내 위치'라는 UI 화면을 다시 만들려고합니다. 화면의 스크린 샷을 첨부 하겠지만 여기서는 그렇게 할 수 없습니다. 그들은 두 개의 listviews 하나를 다른 상단에 사용하고있는 것 같지만 확실하지 않습니다. 아무도 나를 위해 이것을 확인할 수 있습니까? 그들이이 일을한다면 어떻게 될까요? 나는 이것을 성공적으로 구현하려했지만 완전히 성공하지는 못했다. 내 최고의 목록보기 '장소 추가'가 올바르게 나타나지만 아래쪽 목록보기가 표시되지 않거나 채워지지 않습니까? 지금까지 코드를 첨부 해 드리겠습니다 ......UI 안드로이드 질문/문제 목록보기
어떤 도움을 주시면 감사하겠습니다.
header_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="wrap_content">
ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:src="@drawable/ic_menu_add" />
LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">
TextView
android:id="@+id/caption"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Add a place"/>
/LinearLayout>
/LinearLayout>
main.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="?android:attr/listPreferredItemHeight"
android:padding="6dip">
ListView
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
/LinearLayout>
/LinearLayout>
public class ListViewTest extends Activity
{
private static String[] items={"lorem", "ipsum", "dolor",
"sit", "amet", "consectetuer",
"adipiscing", "elit", "morbi",
"vel", "ligula", "vitae",
"arcu", "aliquet", "mollis",
"etiam", "vel", "erat",
"placerat", "ante",
"porttitor", "sodales",
"pellentesque", "augue",
"purus"};
private ListView Header;
private ListView List;
private ArrayList<Caption> caption = null;
private CaptionAdapter adapter;
private ArrayAdapter listAdapter;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
caption = new ArrayList<Caption>();
Caption cap = new Caption();
cap.setCaption("Add a place");
caption.add(cap);
this.adapter = new CaptionAdapter(this, R.layout.header_row, caption);
Header = (ListView) findViewById(R.id.header);
Header.setAdapter(adapter);
//Log.d("ListViewTest", "caption size is:" + caption.size());
adapter.notifyDataSetChanged();
List = (ListView) findViewById(R.id.list);
listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
List.setAdapter(listAdapter);
listAdapter.notifyDataSetChanged();
//setListAdapter(new ArrayAdapter<String>(this,
//android.R.layout.simple_list_item_1,
//items));
}
private class CaptionAdapter extends ArrayAdapter<Caption>
{
private ArrayList<Caption> caption;
public CaptionAdapter(Context context, int textViewResourceId, ArrayList<Caption> caption)
{
super(context, textViewResourceId, caption);
this.caption = caption;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View v = convertView;
if (v == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.header_row, null);
}
Caption c = caption.get(position);
if (c != null)
{
TextView caption = (TextView) v.findViewById(R.id.caption);
if (caption != null)
{
caption.setText(c.getCaption());
}
}
return v;
}
}
}