屏幕布局需要是全屏而不是部分对话

时间:2011-12-14 20:25:02

标签: android android-layout

我正在做一个联系人列表Android应用程序,但我的屏幕有一个小问题。 这是我的search.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">
 <LinearLayout 
 android:orientation="horizontal" 
 android:layout_width="fill_parent" 
  android:layout_height="wrap_content">
 <EditText android:id="@+id/searchText" 
 android:hint="@string/searchDefault"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content" 
  android:layout_weight="1" /> 
 <Button android:id="@+id/searchButton" 
 android:text="Search" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" /> 
 </LinearLayout>
  <ListView
 android:id="@android:id/list"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" />

  </LinearLayout>
enter code here

这是我的detalii.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">

    <TextView
            android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
     <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>


    </LinearLayout>

我的问题是我的屏幕看起来像是从下面的图像,但我希望detalii出现在整个屏幕上。我不知道我做错了什么。可以有人给我一个解决方案吗?

enter image description here

这是我的search.java:

package org.example.dbcontactconsole;




  import android.app.ListActivity;
   import android.content.Intent;
  import android.database.Cursor;
  import android.database.sqlite.SQLiteDatabase;
  import android.os.Bundle;
  import android.view.View;
   import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.EditText;

  import android.widget.ListView;
  import android.widget.SimpleCursorAdapter;
  import static android.provider.BaseColumns._ID;
    public class Search extends  ListActivity {

 private static int[] TO = {R.id.rowid,R.id.name, R.id.mobilephone, R.id.email };
private static String[] FROM = {_ID,DbConstants.NAME, DbConstants.PHONE, DbConstants.EMAIL, };
private Button sButton;

 private ListView lv1;
 private static SQLiteDatabase db;
  private DbCreate contacts;
  private Cursor cursor;
  private EditText searchText;
  protected SimpleCursorAdapter adapter;


protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.search);
    searchText=(EditText)findViewById(R.id.searchText);
    sButton=(Button)findViewById(R.id.searchButton);
    sButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            showDatabaseContent();
              lv1 = getListView();

              lv1.setTextFilterEnabled(true);
        }
    });





    }


  private Cursor getContacts() {
      db = contacts.getReadableDatabase();
      cursor = db.rawQuery("SELECT  _id,name, phone, email FROM contactTest1 WHERE name LIKE ?", 
                new String[]{searchText.getText().toString()+"%"});
      startManagingCursor(cursor);
      return cursor;
         }

    public void showDatabaseContent(){
   contacts = new DbCreate(this); 
   try {
       cursor = getContacts(); 
       showContacts(cursor); 
   } finally {
       contacts.close(); 
       db.close();
   }
    }

    private void showContacts(Cursor cursor) {
   //set up data binding
   adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, FROM, TO);
   setListAdapter(adapter);
   }

    public void onListItemClick(ListView parent, View v, int position, long id) {
   Intent abaintent = new Intent(this,Detalii.class);
   Cursor cursor = (Cursor) adapter.getItem(position);
   abaintent.putExtra("Contact_ID", cursor.getInt(cursor.getColumnIndex("_id")));
   startActivity(abaintent);
   }






  }

这是我的Detalii.java:

package org.example.dbcontactconsole;


      import java.util.ArrayList;
       import java.util.List;

     import android.app.ListActivity;
     import android.content.Intent;
      import android.database.Cursor;
       import android.database.sqlite.SQLiteDatabase;
       import android.net.Uri;
      import android.os.Bundle;
      import android.view.LayoutInflater;
      import android.view.View;
       import android.view.ViewGroup;
      import android.widget.ArrayAdapter;
       import android.widget.ListView;
      import android.widget.TextView;

               public class Detalii extends ListActivity
      { 
      protected TextView contactName;
      protected TextView contactPhone;
      protected TextView email;
      protected int contactId;
      protected  List<Actiune> actiune;
       protected ActiuneAdapter adapter;
      @Override
      public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   setContentView(R.layout.detalii);

  contactId = getIntent().getIntExtra("Contact_ID",0);
   SQLiteDatabase db = (new DbCreate(this)).getWritableDatabase();
   Cursor cursor = db.rawQuery("SELECT name,phone,email FROM contactTest1 WHERE _id=?",new    String[]{""+contactId});

        if (cursor.getCount() == 1)
      {
    cursor.moveToFirst();

    contactName = (TextView) findViewById(R.id.name);
    contactName.setText(cursor.getString(cursor.getColumnIndex("name")));

   actiune= new ArrayList<Actiune>();
   String phoneString=cursor.getString(cursor.getColumnIndex("phone"));
   if (phoneString!=null)
   {
    actiune.add(new Actiune("Suna la numar",phoneString,Actiune.ACTION_CALL));
    }
   String stringemail = cursor.getString(cursor.getColumnIndex("email"));
   if (stringemail != null) {
           actiune.add(new Actiune("Email", stringemail,Actiune.ACTION_EMAIL));
           }
   adapter = new ActiuneAdapter();
   setListAdapter(adapter);
    }
    }
      public void onListItemClick(ListView parent, View view, int position, long id) {

        Actiune action = actiune.get(position);

       Intent intent;
     switch (action.getType()) {

    case Actiune.ACTION_CALL:  
            Uri callUri = Uri.parse("tel:" + action.getData());  
            intent = new Intent(Intent.ACTION_CALL, callUri);
        startActivity(intent);
            break;

    case Actiune.ACTION_EMAIL:  
    intent = new Intent(Intent.ACTION_SEND);
    intent.setType("plain/text");
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{action.getData()});
    startActivity(intent);
    break;


       }
     }    

     class ActiuneAdapter extends ArrayAdapter<Actiune> {

     ActiuneAdapter() {
            super(Detalii.this, R.layout.actiune_detalii, actiune);
    }

     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
    Actiune action = actiune.get(position);
    LayoutInflater inflater = getLayoutInflater();
    View view = inflater.inflate(R.layout.actiune_detalii, parent, false);
    TextView label = (TextView) view.findViewById(R.id.label);
    label.setText(action.getLabel());
    TextView data = (TextView) view.findViewById(R.id.data);
    data.setText(action.getData());
    return view;
    }

    }

    }

1 个答案:

答案 0 :(得分:1)

看起来你的Detalii活动有一个对话框样式集。如果是这种情况,请尝试从此处更改:

<activity android:name=".Detalii" android:theme="@android:style/Theme.Dialog">

到此:

<activity android:name=".Detalii">

这只是猜测,因为你没有发布你的清单...