每当我进行线性布局时,整个布局都会完美地显示在设计页面上,但是当我在手机上运行应用程序时,此布局显示为完全空白。
这是不会出现的activity_order_list.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/txtInput"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:hint="New item"
/>
<Button
android:id="@+id/btAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add"
android:layout_toRightOf="@+id/txtInput"
/>
</RelativeLayout>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
这是item_list.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/txtview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
这是它的Java代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Arrays;
public class OrderList extends Activity {
ArrayAdapter<String> adapter;
EditText editText;
ArrayList<String> itemList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_item);
String[] items={"Apple","Banana","Clementine"};
itemList=new ArrayList<String>(Arrays.asList(items));
adapter=new ArrayAdapter<String> (this,R.layout.list_item,R.id.txtview,itemList);
ListView mainlist=(ListView)findViewById(R.id.list);
mainlist.setAdapter(adapter);
editText=(EditText)findViewById(R.id.txtInput);
Button btAdd=(Button)findViewById(R.id.btAdd);
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newItem=editText.getText().toString();
// add new item to arraylist
itemList.add(newItem);
// notify listview of data changed
adapter.notifyDataSetChanged();
}
});
}
}
答案 0 :(得分:0)
将 fill_parent 更改为 match_parent
答案 1 :(得分:0)
尝试将setContentView(R.layout.list_item);
更改为setContentView(R.layout.activity_order_list);
如果您要填充layout_weight
ListView
LinearLayout
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
</ListView>
答案 2 :(得分:0)
首先,您输入了item_list.xml
作为您在ListView和您编写的活动list_item
中使用的布局的名称,因此请首先确保名称正确无误。其次,您将setContentView
中的contentview设置为R.layout.list_item
,这是ListView的布局,其中只包含没有任何文本的TextView。因此,当您的应用程序运行时,它不会显示activity_order_list.xml
的布局,而是显示list_item.xml
的布局,其中只包含没有任何文本的TextView。这将使屏幕看起来空白。因此,首先将您的setContentView(R.layout.list_item);
更改为setContentView(R.layout.activity_order_list);
,同时将layout_height
从match_parent
更改为wrap_content
item_list.xml
,然后告知我们是否已解决你的问题...希望它能帮到你:)。