2010-04-06 5 views
1

날씨 채널 응용 프로그램에서 사용되는 '내 위치'라는 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; 
} 

} 
} 

답변

0

내가 그 페이지에서 모든이 개의 ListView 생각하지 않습니다. 더 좋아하는 것 :

<LinearLayout android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <Button android:id="@+id/add_a_place" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 

     <ImageView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/weather_logo" /> 
    </LinearLayout> 

    <ListView android:id="@+id/somelist" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" /> 
</LinearLayout> 

나는 뭔가를 놓치고있는 것처럼 느낀다. 그 페이지에서 두 ListViews 수 나타내는 아무것도 표시되지 않습니다, 그래서 어떻게 든 당신을 위해 다르게 보이는지 궁금하네요.

관련 문제