2011-02-01 11 views
1

私はListActivityを使ってリストビューを設定しています。私がしたいことは、リストビューを上部に表示し、直線レイアウトを親の下に表示することです。ListActivityの中にリストビューと直線レイアウトを追加するandroid

私はListActivityを使用しているので、私はレイアウトファイルをレイアウトしていません。それでも私は何をするために管理することは、リストビューのインスタンスを取得しているが、私はのLinearLayoutでそれを設定しようとしているとき、私はエラーを取得しています:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first 

私は次のコードを使用しています:

final ListView lv = getListView();  

    LinearLayout root = new LinearLayout(this); 
    root.setOrientation(LinearLayout.VERTICAL); 
    root.setLayoutParams(new LayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT, 
    LinearLayout.LayoutParams.FILL_PARENT)); 

    root.addView(lv); 
    setContentView(root); 
を誰でも助けてくれますか?

Thanx事前に。

答えて

0

何を行うようになったことはListActivityは、あなたのカスタムXMLレイアウトがIDを持つ1 ListViewコントロールを持っていることを常にある場合は問題ではない、カスタムレイアウトを定義している:アンドロイド:ID =」ここで

はチュートリアルです@android:ID /リスト」

私はこのような私の活動のレイアウトを定義した:

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

    <include layout="@layout/generic_header_layout" android:id="@+id/listaBusquedasHeader"/> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:cacheColorHint="#00000000"/> 

</LinearLayout> 

後で私の活動の上でのレイアウトを定義して作成すべてthat's

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 

     setContentView(R.layout.lista_busquedas_activity); 
     listView = (ListView) findViewById(android.R.id.list); 
     listView.setOnItemClickListener(listItemListener); 
     ((TextView)findViewById(R.id.genericHeaderTitle)).setText(R.string.listaBusquedasGuardadasTitle); 

     if(LoginManager.getInstance().existeUsuarioValidoLogueado()){ 
      aTask = new AsynchronousTask(this, AsynchronousTask.MODE_STRING, handler, OBTENER_BUSQUEDAS_GUARDADAS); 
      aTask.execute(OperationsFacadeManager.obtenerBusquedasGuardadas(1)); 
     }else{ 
      Toast.makeText(this, R.string.genericErrorUserNotLogged, Toast.LENGTH_SHORT); 
     } 
    } 

、人々を助け

関連する問題