如何在列表上方显示文本,我使用ListActivity来显示自定义列表

时间:2011-04-15 13:14:58

标签: android

亲爱 当我在我的类文件中扩展listactivity时,如何在自定义列表上方显示文本..代码如下所示..

public class ServerResponce extends ListActivity {
        private ArrayList<listobj> tobj = new ArrayList<listobj>();
         static String str1;
        PickUpLocation pickup=new PickUpLocation();
        String pickuplocid=  pickup.locationid;
        String des=planner.description;
         @Override
         public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
      **//here not work force close**
                  //     ****setContentView(R.layout.list_item);

**//                    TextView tv = (TextView)findViewById(R.id.text1);
//                       tv.setText("i want to book a  cab for 4 hr/40km from sushant lok to delhi air port at" +
//                          "4 pm today"
//                           +"the cab should be 4 seater compact cab with carriage");
//                            tv.setBackgroundColor(R.color.black);**    
//        


         new MyTask().execute();
         }         

      private class MyTask extends AsyncTask<Void, Void, Void>
      {
              private ProgressDialog progressDialog;
              protected void onPreExecute() {
                      progressDialog = ProgressDialog.show(ServerResponce.this,
                                        "", "Loading. Please wait...", true);
              }

              protected void onProgressUpdate(Integer... integer){
                  TextView tv = null;
                tv.setText("gjh");
              }
              @Override
              protected Void doInBackground(Void... arg0) {
                      try {



                          URL url = new URL("http://qrrency.com/mobile/j2me/cab/CabBookingStatus.php?requestid=666");
                          BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                          int l=0;
                          int k=0;
                          StringBuffer buffer=new StringBuffer();
                          String str=" ";
                          while ((l=in.read())!=-1) 
                          {
                                buffer.append((char)l);
                                str=str+(char)l;

                          } 

                           in.close();
//                                  
                                try {
                            JSONObject json = new JSONObject(str);
                            JSONArray nameArray=json.getJSONArray("bookings");
                            JSONObject[] cabListing=new JSONObject[nameArray.length()];
                            for (int i = 0; i < cabListing.length; i++) {

                                //JSONObject jSONObject = cabListing[i];
                                 JSONObject jSONObject = nameArray.getJSONObject(i);
                                 listobj tweet = new listobj();
                                 JSONObject temp=jSONObject.getJSONObject("booking");
                                 tweet.cabid = temp.getString("cabbookingid");
                                 tweet.author =temp.getString("CabDriverName");
                                 tweet.content =temp.getString("price");
                                 tweet.cabrat=temp.getString("cabrating");
                                 tobj.add(tweet);
                            }
                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }

                        } catch (MalformedURLException e)
                        {
                        } catch (IOException e) 
                        {

                    }




                  return null;
              }

        @Override
        protected void onPostExecute(Void result) {
                progressDialog.dismiss();
                setListAdapter(new tListAdaptor(
                              ServerResponce.this, R.layout.list_item, tobj));
         }
    }
    private class tListAdaptor extends ArrayAdapter<listobj> {
            private ArrayList<listobj> tobj;
            public tListAdaptor(Context context,int textViewResourceId,ArrayList<listobj> items)
            {

                      super(context, textViewResourceId, items);
                      this.tobj = items;
            }
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                    View v = convertView;
                    if (v == null) {
                            LayoutInflater vi = (LayoutInflater)
                                     getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                            v = vi.inflate(R.layout.list_item, null);

                    }
                    listobj o = tobj.get(position);


                    TextView tt = (TextView) v.findViewById(R.id.toptext);
                    TextView bt = (TextView) v.findViewById(R.id.bottomtext);
                    TextView bt1 = (TextView) v.findViewById(R.id.bottomtext1);
                    TextView bt2 = (TextView) v.findViewById(R.id.bottomtext2);
                    bt.setText("CAB NAME: " +o.author);
                    bt1.setText("CAB ID:  " +o.cabid);
                    tt.setText("PRICE:  " +o.content); 
                    bt2.setText("CAB RATING:  " +o.cabrat);
                    return v;
            }
       }
    public String getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }
}

xml文件是......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
    >

    <RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:paddingTop="6dip">

   <TextView android:id="@+id/text" android:layout_width="fill_parent"
      android:layout_height="wrap_content"
       android:singleLine="false" 
       android:text=" "
       android:textStyle="italic"
       />
       <Button 
         android:text="auto book" 
         android:id="@+id/autobook"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:layout_below="@id/text"/>
          <Button 
         android:text="cancel" 
         android:id="@+id/cancel"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" 
         android:layout_below="@id/text"
         android:layout_toRightOf="@id/autobook"/>

  </RelativeLayout>
           <LinearLayout
       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:layout_weight="1">

  <TextView android:id="@+id/toptext" android:layout_width="fill_parent"
      android:layout_height="wrap_content"
       android:singleLine="true"
       android:text=" " />
  <TextView android:id="@+id/bottomtext" android:layout_width="fill_parent"
      android:layout_height="wrap_content"
       android:singleLine="true" />
      <TextView android:id="@+id/bottomtext1" android:layout_width="fill_parent"
      android:layout_height="wrap_content"
       android:singleLine="true"
       android:text=" " />
      <TextView android:id="@+id/bottomtext2" android:layout_width="fill_parent"
      android:layout_height="wrap_content"
       android:singleLine="true" />
       </LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

您可以通过textview设置标题。它仍将采用与列表视图相同的格式,但列表视图中的顶部项目将是您的文本视图

答案 1 :(得分:0)

您的代码正在寻找R.id.text1

TextView tv = (TextView)findViewById(R.id.text1);

但是你的xml没有任何这样的id。

所以你会得到一个null的电视。