Search code examples
androidlistviewtitlebar

Not able to add Title bar for Listview


The requirement for my screen is like having a title bar at the top middle and followed by the list view when am trying to do that am not able to do like i got state name in every list item.I want that only in the top and once. And the screen shot of it is screen shot

 <?xml version="1.0" encoding="utf-8"?>
    <TableLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
     android:layout_height="fill_parent"
        >
      <TableRow>
      <TextView 
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"
         android:background="#000000"
         android:text="Select State"
                
      ></TextView>
      </TableRow>
      <TableRow> 
      <TextView  android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          
           android:id="@+id/label"
          android:textSize="30px"></TextView>
    </TableRow>
    </TableLayout>

I have tried many ways this is my present layout

and my java code is

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class new21 extends ListActivity {
    /** Called when the activity is first created. */
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        // Create an array of Strings, that will be put to our ListActivity
        String[] names = new String[] { "Andhra Pradesh", "Kerala","Tamilnadu","Karnataka" };
        // Use your own layout and point the adapter to the UI elements which
        // contains the label
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.new21,
                R.id.label, names));
    }

    @Override
    
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        // Get the item that was clicked
        Object o = this.getListAdapter().getItem(position);
        String keyword = o.toString();
        if(keyword.equals("Andhra Pradesh"))
        {
            Intent ima45=new Intent(new21.this,new31.class);
            startActivity(ima45);
    
        }
        Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG)
                .show();
        
    }

}

Can any one help me.


Solution

  • You can addHeader to the ListView like this,

    View header = getLayoutInflater().inflate(R.layout.header, null);
    ListView listView = getListView();
    listView.addHeaderView(header);
    setListAdapter(new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_single_choice, names));
    

    Where R.layout.header is the layout that contains a TextView with text "Select State"

    UPDATED:

    public class ListViewProblemActivity extends ListActivity {
    
        ListView listView;
    
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            // Create an array of Strings, that will be put to our ListActivity
            String[] names = new String[] { "Andhra Pradesh", "Kerala","Tamilnadu","Karnataka" };
            // Use your own layout and point the adapter to the UI elements which
            // contains the label
    
            TextView tv = new TextView(getApplicationContext());
            tv.setText("Select State");
    
            listView = getListView();
            listView.addHeaderView(tv);
            this.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,names));
        }
    
        @Override
    
        protected void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);
            // Get the item that was clicked
    
            if(position != 0){
                System.out.println(position - 1);
                Object o = this.getListAdapter().getItem(position - 1);
                String keyword = o.toString();
                Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG)
                        .show();
            }
        }
    }