android中的TextView问题

时间:2011-05-16 05:20:40

标签: android textview

嗨,我正在制作一个示例应用程序。更新列表。 我有一个列表类,它的xml就像。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/ListView01" android:layout_height="wrap_content"
android:layout_width="fill_parent"></ListView>
<TextView android:id="@+id/more" 
android:layout_height="wrap_content" 
android:text="Click to view more..." 
android:textStyle="normal|bold" android:textColor="#FF8000"      android:textSize="10dip"
android:gravity="center_vertical|center_horizontal" android:layout_width="fill_parent">
</TextView>
</LinearLayout>

现在我设置了文本View的TouchListener,并在其中添加了以下代码

    @Override
         public boolean onTouch(View v, MotionEvent event) {
        switch(v.getId())
        {
        case R.id.more:
        //update List Method Call..
        more.setText("Click to view More..");
        adapter.notifyDataSetChanged();
        }

        // TODO Auto-generated method stub
        return false;
    }

你在switch语句的第3行看到我添加了

 more.setText("Click to view More..");

但是当我的列表更新时。文本视图不再显示在底部。 请指导我为什么会发生这种情况并解决方案?

5 个答案:

答案 0 :(得分:2)

在这种情况下你可以使用列表页脚。

在ur java文件中添加此代码。并在列表中动态添加页脚。

TextView more = new TextView(this);
more.setText("Click to view more...");
more.setClickable(true);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, Height);
more.setLayoutParams(params);

more.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        //update List Method Call..
          more.setText("Click to view More..");
           adapter.notifyDataSetChanged();
    }
});

ListView listView = (ListView) findViewById(R.id.ListView01);
listView.addFooterView(more);

这可以帮到你。

答案 1 :(得分:1)

android:layout_height="fill_parent" android:layout_above="@+id/more"中尝试ListView。现在,即使您的ListView增长,它也不会隐藏TextView

<强>更新

<RelativeLayout android:id="@+id/relativeList"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_above="@+id/LinearBottom3">
    <ListView 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:id="@+id/chathlist"
     />
</RelativeLayout>

  <RelativeLayout android:id="@+id/LinearBottom3"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content"><!--Make it as center-->
  <TextView  android:id="@+id/more" android:layout_height="wrap_content" 
android:text="Click to view more..." android:textStyle="normal|bold" android:textSize="10dip"
  android:gravity="center_vertical|center_horizontal" android:layout_width="fill_parent"/>
  </ReletiveLayout>

答案 2 :(得分:1)

试试这个......

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_alignParentTop="true" android:layout_height="fill_parent" android:layout_above="@+id/more"></ListView>
<TextView android:id="@+id/more" 
android:layout_height="wrap_content" 
android:text="Click to view more..." 
android:textStyle="normal|bold" android:textColor="#FF8000"      android:textSize="10dip"
android:gravity="center_vertical|center_horizontal" android:layout_width="fill_parent" android:layout_alignParentBottom="true">
</TextView>
</RelativeLayout>

答案 3 :(得分:1)

试试这个.. footer.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content">

    <TextView android:layout_height="wrap_content"
        android:textSize="30dip" android:gravity="center_horizontal"
        android:text="Click to view More.." android:layout_width="fill_parent"
        android:id="@+id/more"></TextView>

</LinearLayout>

在课程文件

LayoutInflater inflater = activity.getLayoutInflater();
LinearLayout footer = (LinearLayout)inflater.inflate(
            R.layout.footer, null);
TextView more= (TextView)footer.findViewById(R.id.more);



 more.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //List Update Code
            }
        });

答案 4 :(得分:0)

使用以下代码.. footer_layout.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"
android:paddingTop="7dip"
android:paddingBottom="7dip"
android:orientation="horizontal"
android:gravity="center">
<LinearLayout 
android:id="@+id/footer_layout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_gravity="center">

<TextView 
    android:text="footer_text_1" 
    android:id="@+id/footer_1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="14dip" 
    android:textStyle="bold" 
    android:layout_marginRight="5dip">
</TextView> 

 </LinearLayout>
  </LinearLayout>   

并在代码中使用以下内容:

public class listactivty extends ListActivity{
 private Context context = null;
 private ListView list = null;  

 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
  list = (ListView)findViewById(android.R.id.list);
//code to set adapter to populate list

 View footerView = 
      ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
    list.addFooterView(footerView);
}

为ListView使用单独的XML文件..

由于 Shahjahan Ahmad