проблема в TextView в Android - PullRequest
0 голосов
/ 16 мая 2011

Привет всем, я делаю пример приложения.для обновления списка.У меня есть список класса, и его 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>

теперь я установил TouchListener текста View и добавил в него следующий код

    @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;
    }

Вы видите в 3-й строке оператора switch, что я добавил

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

строка, но когда мой список обновляется.Текстовое представление больше не отображается внизу.Пожалуйста, объясните, почему это происходит со мной и каково решение ??

Ответы [ 5 ]

2 голосов
/ 16 мая 2011

в этом случае вы можете использовать нижний колонтитул.

добавить этот код в ваш 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 голос
/ 16 мая 2011

попробуйте это .. 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
            }
        });
1 голос
/ 16 мая 2011

попробуйте это ...

 <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>
1 голос
/ 16 мая 2011

попробуйте android:layout_height="fill_parent" android:layout_above="@+id/more" в ListView. Теперь, даже если ваш ListView растет, он не будет скрывать TextView.

UPDATE

<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>
0 голосов
/ 17 мая 2011

используйте следующий код .. 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);
}

используйте отдельный файл XML для ListView ..

Спасибо, Шахджахан Ахмад

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...