2014-04-03 3 views
11

Android 개발에서 시작하고 있는데 제목에 오류가 있습니다.addView (View)가 AdapterView에서 지원되지 않습니다.

여기에 텍스트로, 내가 "안녕하세요"를 가진 TextView을 만드는거야 내 ContactListFragmentonCreateView() 방법을 내 Contacts.java

package us.inevent.toot; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v7.app.ActionBarActivity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

public class Contacts extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_contacts); 

     if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new ContactListFragment()).commit(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.contacts, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    /** 
    * A placeholder fragment containing a simple view. 
    */ 
    public static class ContactListFragment extends Fragment { 

     private ViewGroup listContacts; 

     public ContactListFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) 
     { 

      View rootView = inflater.inflate(R.layout.fragment_contacts, 
        container, false); 

      listContacts = (ViewGroup) rootView.findViewById(R.id.listContacts); 

      TextView aux = new TextView(getActivity()); 

      aux.setText("Hello World!"); 

      listContacts.addView(aux); 

      return rootView; 
     } 
    } 

} 

입니다.

그런 다음 해당보기를 내 ViewGroup listContacts에 추가하려고합니다. 여기

내이 fragment_contacts.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="us.inevent.toot.Contacts$PlaceholderFragment" > 

    <TextView 
     android:id="@+id/textContact" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="0dp" 
     android:text="@string/textContact" 
     android:textSize="@dimen/abc_action_bar_title_text_size" /> 

    <ListView 
     android:id="@+id/listContacts" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/textContact" 
     android:layout_marginTop="10dp" /> 

</RelativeLayout> 

내가 잘못하고있는 중이 야 무엇입니까?

감사합니다.

+0

내가 잘못 * 뭘 * 오류 부여되지는 당신의 선형 목록의 모든보기를 추가 - 당신이있어에게 정상적인 방법으로는 허용되지 않는'ListView'에'TextView'를 추가합니다. – Luksprog

+1

@Luksprog, 어떻게'ListView'에 항목을 추가 할 수 있습니까? –

답변

7

ListView으로 설정하려고합니다. 그게 효과가 없을거야. 그것을 부모로 설정하십시오. 댓글 후

listContacts.getParent().addView(aux); 

편집 같은 것을 함께

는에 항목을 추가 할 ListView 당신은 당신이 당신의 ListView를 채우는 데 사용 어떤 목록에 추가하고 Adapter에에 setAdapter() 또는 notifyDataSetChanged()를 호출해야 .

ListView에 항목을 추가하지 마십시오. Adapter에 항목을 추가하고 ListViewAdapter을 설정합니다.

나는

독서 철저하게 문서를 통해 going through this tutorial을 제안한다. 워드 프로세서 어댑터 뷰 AdapterView 사이의 다리

어댑터 오브젝트 작용하고보기위한 기본 데이터에서

Adapter

ListView. 어댑터는 데이터 항목에 대한 액세스를 제공합니다. 또한 어댑터는 데이터 세트의 각 항목에 대한보기를 작성해야합니다.

귀하의 ListView는 (그것이 Spinner 또는 다른 것들 일 수) 여기 AdapterView입니다

+0

하지만 'ListView'에 항목을 추가하고 싶습니다. 나는 당신의 모범으로 그것을 성취 할 수 없습니다. –

+0

"하지만 내 ListView에 항목을 추가하고 싶습니다."귀하가 귀하의 게시물 *에서 말한 내용과 다릅니다. – codeMagic

+1

어떻게 할 수 있습니까? –

0

를 사용하여 선형 레이아웃 대신 목록보기.

0

선형 레이아웃에서 목록보기를 넣고 다음 거

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:id="@+id/llist" 
tools:context="com.android.parteek.contentprovider.Main2Activity"> 

    <android.support.v7.widget.SearchView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/serch" /> 


< ListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.android. parteek.contentprovider.Main2Activity"> 

</ListView> 

관련 문제