2014-06-09 2 views
0

사용자 지정 CursorAdapter을 사용하여 Fragment 사용자 지정 ListView을 사용하려하지만 지금까지 ListView을 표시 할 수 없었습니다.사용자 지정 ListView가 표시되지 않습니다.

내가 뭘 잘못하고 있니?

Fragment

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ListView; 

public class MyListFragment extends Fragment { 

    private CustomcursorAdapter mCustomcursorAdapter; 
    private ListView mListView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, 
          ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_mylist, container, false); 

     //CursorAdapter 
     mCustomcursorAdapter = new CustomcursorAdapter(view.getContext(), null, 0); 

     //ListView 
     mListView = (ListView) view.findViewById(R.id.itemslist); 
     mListView.setAdapter(mCustomcursorAdapter); 

     return view; 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 
} 

내 MainActivity

import android.app.Activity; 
import android.app.FragmentManager; 
import android.os.Bundle; 

public class MainActivity extends Activity { 

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

     FragmentManager fragmentManager = getFragmentManager(); 
     if (fragmentManager.findFragmentById(android.R.id.content) == null) { 
      MyListFragment myListFragment = new MyListFragment(); 
      fragmentManager.beginTransaction().add(android.R.id.content, myListFragment).commit(); 
     } 
    } 
} 

CustomcursorAdapter 여기

import android.content.Context; 
import android.database.Cursor; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.CursorAdapter; 
import android.widget.TextView; 

public class CustomcursorAdapter extends CursorAdapter { 

    private LayoutInflater mLayoutInflater; 

    public CustomcursorAdapter(Context context, Cursor c, int flags) { 
     super(context, c, flags); 
     mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public void bindView(View view, Context context, Cursor cursor) { 
     TextView textview = (TextView) view.findViewById(R.id.itemTextView); 
     textview.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_NAME_ITEM))); 
    } 

    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     return mLayoutInflater.inflate(R.layout.itemslist, parent, false); 
    } 
} 
+0

후 CustomcursorAdapter –

+0

@Rod_Algonquin 사용자 정의 CursorAdapter 게시! – ivoencarnacao

+0

@ivoencarnacao 당신은 null 커서로 어댑터를 초기화합니다 - 데이터 없음> 표시 할 항목 없음> 목록 없음. – nitzanj

답변

0

내가 뭐하는 거지입니다. 조각에서

, 나는 이런 식으로)합니다 (onActivityCreated에 최선을 다하고 있어요 :

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

     View campainview = inflater.inflate(R.layout.campaignview, container, false); 

     return campainview; 
    } 

    public void onActivityCreated(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onActivityCreated(savedInstanceState); 

      String[] s = {"a","b","c","d","b","c","d","b","c","d","b","c","d","b","c","d","b","c","d"}; 

      ArrayList<String> aList = new ArrayList<String>(); 

      for(String s1:s){ 

       aList.add(s1); 

      } 

      ListView lv1= (ListView)getActivity().findViewById(R.id.campaignListView); 
      lv1.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,aList)); 

     } 

이 작품의 나를 위해 기본적으로 당신이 할 수있는 것은 대신에이 어댑터를 사용하면 사용 iv'e이다 당신에게 커서 어댑터를 사용할 수 있습니다. 여전히 작동하지 않는다면 문제는 커서 어댑터와 관련이 있거나 데이터베이스에서 오는 값이 null 일 수 있습니다.

이 작동 .. 행운을 빕니다 경우 알려주세요 .. :)

관련 문제