2015-06-29 5 views
3

Я использую ListView без проблем, когда расширяет ListFragment. Но я хочу, чтобы расширяет фрагмент (не ListFragment). Как мне это сделать?Listview in Fragment without extends ListFragment

public class ListEnployees extends ListFragment { 

private Cursor employees; 
private MyDatabase db; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    db = new MyDatabase(getActivity()); 
    employees = db.getEmployees(); 
    // no more this 
    // setContentView(R.layout.list_fruit); 

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_fruit,employees)); 

    ListView listView = getListView(); 
    listView.setTextFilterEnabled(true); 

    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Toast.makeText(getApplicationContext(), 
      ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

}

ответ

1

Попробуйте, это работает для меня!

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

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

    ListView lst = (ListView) rootView.findViewById(R.id.lst); 
    Adapter adapter = //youradapter; 
    lst.setAdapter(adapter); 

    return rootView; 
} 
+0

Спасибо за ответ. это работает для меня тоже :) –

0

Использование Под кодом:

public class MainActivity extends Activity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      ListView lst=(ListView) findViewById(R.id.listView1); 
      lst.setAdapter(...) 
     } 
    } 


<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" > 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" > 
    </ListView> 

</RelativeLayout> 
1

Попробуйте это,

public class ListEnployees extends Fragment{ 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
View parentView = inflater.inflate(R.layout.your_fragment_with_list view, container, false); 
ListView list = (ListView) parentView .findViewById(R.id.ur_list); 
Adapter adapter = new Adapter(getActivity(),object you want to pass); 
list.setAdapter(adapter); 
return parentView; 
} 

} 
+0

Я уже попробовать это, но этот код 'setListAdapter (новый ArrayAdapter (это, R.layout.list_fruit, сотрудники))' работает только на классе ** распространяется ListFragment ** Как я могу изменить мой. код работает с классом ** extends Fragment ** –