ListActivity全屏方法

时间:2015-02-09 14:33:20

标签: android android-listview listactivity

我创建了一个7天的列表,希望列表能够全屏显示。 但是这个名单在底部有一个缺口。 我想消除差距。

enter image description here

我的代码如下:

package com.example.collegehack;

import android.app.ListActivity;

import android.content.Intent;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Days extends ListActivity {

    String days[] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
            "Saturday", "Sunday" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(Days.this,
                android.R.layout.simple_list_item_1,days));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        String temporary = days[position];
        try {
            Class ourClass = Class.forName("com.example.collegehack"
                    + temporary);

            Intent ourIntent = new Intent(Days.this, ourClass);
            startActivity(ourIntent);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

请帮我解决这个问题。 提前谢谢。

4 个答案:

答案 0 :(得分:2)

如果您的列表不需要展开或向下滚动并且总是具有有限数量的行(即一周中的几天),请考虑根本不使用ListView。使用LinearLayoutTextViews七个android:layout_weight=1,并设置每个android:layout_height="0dp"setOnClickListener LinearLayout将在TextView中均匀分布空白区域。

然后,您可以为每个TextView设置{{1}},以执行您正在寻找的操作。

答案 1 :(得分:0)

您可以将自定义列表视图与自定义列表项一起使用,如下面的链接,然后修改单个项目的高度。

http://www.codelearn.org/android-tutorial/android-listview

答案 2 :(得分:0)

为此,您需要夸大自己的观点。

请按照以下步骤操作:

1。创建包含my_layout.xml的<{1}}:

textView

2. 在您的适配器中,您需要覆盖getView()方法并设置行高度,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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/textView1"
    android:gravity="center_vertical"
    android:layout_centerVertical="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</RelativeLayout>

3。禁用列表滚动,因为此解决方法中的分隔线高度不计算,而listView将滚动一毫米:

setListAdapter(new ArrayAdapter<String>(MainActivity.this,
            android.R.layout.simple_list_item_1,days) {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if(convertView == null) {
                convertView = getLayoutInflater().inflate(R.layout.my_layout, parent, false);
                convertView.getLayoutParams().height = parent.getHeight() / getCount();
                convertView.requestLayout();
                TextView tv = (TextView) convertView.findViewById(R.id.textView1);
                tv.setText(getItem(position));
            }
            return convertView;
        }
    });

那就是它!玩得开心:))

答案 3 :(得分:0)

您可以使列表的字体更大或使用自定义列表视图,或者如果您的活动不需要展开或滚动,请使用linearlayout和其中的一些按钮