Android - 无法组合视图

时间:2012-03-20 04:25:45

标签: android android-layout

我有一个Activity,我尝试显示一些简单的消息,然后是一个项目列表。据我所知,我需要两个视图:一个用于简单布局,另一个用于将由适配器处理的项目列表。

这是我的代码:

ArrayAdapter<SolutionTopic> adapter;        

ArrayList<SolutionTopic> problems = new ArrayList <SolutionTopic>( );   

/ **首次创建活动时调用。 * / @覆盖 public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);

// Load your layout
setContentView(R.layout.solution);

SolutionTopic s = new SolutionTopic ();
s.setSolutionTopicName( "Hello" );

problems.add(s);        

adapter = new ArrayAdapter<SolutionTopic>(this, R.layout.solution_topic_list, 
        R.id.label,  problems);

TextView solution_title  = (TextView) findViewById(R.id.solution_title);        
TextView solution_description = (TextView) findViewById(R.id.solution_description);

setListAdapter (adapter);

}

,这是solution.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

<TextView
    android:id="@+id/solution_title"    
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Label1"
    />  

<TextView
    android:id="@+id/solution_description"    
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Label2"
    />  

</LinearLayout>

,这是solution_topic_list.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>  

我不确定如何让这两个一起渲染。理想情况下,我想要做的是首先显示TextView消息,然后显示项目列表。

知道我该怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您不应该从solution.xml中删除ListView,在该ListView中将显示您的SolutionTopics。

为了全面了解,您的界面将有三个视图:

-TextView:@ + id / solution_title

-TextView:@ + id / solution_description

-ListView:@android:id / list

ListView包含未定义数量的solution_topic_list.xml条目。

PD:ArrayAdapter(R.id.label)的第三个参数应该是solution_topic_list.xml中TextView的id:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/label"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>  

您还应该在SolutionTopic类中实现toString方法,以获取所需的String。