ALL, 我有一点问题。 我正在尝试为我的应用程序创建以下布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/output"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="40dp"
android:layout_marginLeft="40dp"
android:layout_marginBottom="12dp"
android:layout_marginTop="50dp"
android:scaleType="center"
android:gravity="center_horizontal"
layout_margin="1dp"
android:textSize="18sp"
android:text=" "
>
</TextView>
<ImageView
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="50dp"
android:layout_marginTop="340dp"
android:src="@drawable/next"
/>
<ImageView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/next"
android:layout_marginRight="20dp"
android:layout_marginTop="340dp"
android:src="@drawable/save"
/>
<ListView
android:id="@+id/filenames"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:drawSelectorOnTop="false"
android:layout_below="@id/output"
android:layout_above="@+id/save"
/>
</RelativeLayout>
然后在我的来源中我使用以下内容:
test = new ArrayList<String>();
test.add( "a" );
test.add( "b" );
test.add( "c" );
lv = (ListView) findViewById( R.id.filenames );
adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, test );
lv.setAdapter( adapter );
lv.setTextFilterEnabled( true );
lv.setOnItemClickListener( new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
m_fileclicked = (String) lv.getItemAtPosition( position );
}
});
问题是我可以看到按钮和文本,但列表视图是黑色的(即空的)。
代码使用的是Acivity,而不是ListActivity。
我环顾四周 - 这里至少有3个关于如何在使用活动时填充列表视图的示例,但它们都使用了一些“疯狂”的布局。
我只需要显示一个简单的字符串。
有人可以帮忙吗?
谢谢。
答案 0 :(得分:1)
你的代码看起来不错。
我个人会先简化您的布局(纯粹作为测试),以防ListView
隐藏或RelativeLayout
正确展开。
我会将ListView
放在一个简单的LinearLayout
中作为测试,只需在展位中放置ListView
拉伸高度和宽度:
<ListView
android:id="@+id/filenames"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
如果ListView
然后正确显示,您知道问题与RelativeLayout
代码有关,而不是适配器的绑定。
我猜你也在onCreate()
方法中绑定了?
答案 1 :(得分:1)
首先,检查您的按钮ID 输出是下一步?
android:layout_below="@id/output"
android:layout_above="@+id/save"
另外一件事 m_fileclicked 你声明了它。是不是那个字符串。请更正。
您可以尝试以下简单示例:
public class ListExample extends Activity
{
private ListView list;
private String countries[]={"Nepal","India","China","Norway","germany"};
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.ListView01);
list.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , countries));
list.setTextFilterEnabled(true);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
AlertDialog.Builder builder=new AlertDialog.Builder(ListExample.this);
builder.setTitle(" List Item Demo");
builder.setMessage("Your Selected Item is = "+list.getItemAtPosition(Position));
builder.setPositiveButton("Ok", null);
builder.show();
}
});
}
}
你的xml文件只有listview add和名字ListView01。
答案 2 :(得分:0)
我认为您对RelativeLayout属性没有明确的了解。这种布局使设计人员可以根据需要设计布局。此布局为开发人员提供了此类功能。请点击这些链接
http://android-pro.blogspot.com/2010/03/relative-layout.html
http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html
http://developer.android.com/guide/topics/ui/layout-objects.html
答案 3 :(得分:0)
您的TextView
填充了父级的高度,而您的列表视图位于此文本视图下方。我认为这就是问题所在。您的@id/output
文字视图应layout_height="wrap_content"
。
<TextView
android:id="@+id/output"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
将listview的背景设置为红色,以便您可以清楚地区分它(只是测试。)
请从layout_marginTop
中删除<ImageView>
,然后使用layout_alignParentBottom="true"
。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/output"
android:layout_width="fill_parent"
android:layout_height="wrap_content" // should wrap content
......./>
<ImageView
android:id="@+id/next"
.......
....... // REMOVE MARGIN TOP
android:layout_alignParentBottom="true" //align parent bottom
/>
<ImageView
android:id="@+id/save"
.......
....... // REMOVE MARGIN TOP
android:layout_alignParentBottom="true" //align parent bottom
/>
<ListView
android:id="@+id/filenames"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
.......... />
</RelativeLayout>