2016-07-04 21 views
0

自分のフラグメントの1つにカスタムlistviewを追加します。私はMainActivityと3つの断片を持っています。私はのXMLをfragmentのXMLまたはmainActivityのXMLに追加するべきか混乱しています。フラグメントにカスタムリストビューを追加する方法

これは私のmainActivity.java

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from activity_main.xml 
    setContentView(R.layout.activity_main); 

    // Locate the viewpager in activity_main.xml 
    ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 

    // Set the ViewPagerAdapter into ViewPager 
    viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager())); 

    ViewPager mPager = (ViewPager) findViewById(R.id.pager); 
    mPager.setPageTransformer(true, new ZoomOutPageTransformer()); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
     getWindow().setStatusBarColor(getResources().getColor(android.R.color.black)); 
    } 
    } 

} 

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/pager" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/mainbg"> 

    <android.support.v4.view.PagerTabStrip 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="top" 
    android:paddingBottom="10dp" 
    android:paddingTop="10dp" 
    android:textSize="20sp" 
    android:textColor="#D3D3D3" 
    android:background="#33000000"/> 

    <ListView 
    android:id="@+id/song_list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
    </ListView> 

</android.support.v4.view.ViewPager> 
+0

はあなた 'ListView'がfragment.xml' –

+0

あなたのフラグメントにリストビューを追加しますfile @PhanVănLinhとkashyap jimuliya –

+0

'で大丈夫だろうと私は同じfragment.xmlまたはmainActivity.xmlにするか、新しいレイアウト解像度にカスタマイズされたリストビューを追加する必要があります – HSBP

答えて

0

your_fragmentレイアウトファイルで使用ListViewとリストビューのカスタム列のための新しいレイアウトを作成し、カスタム・アダプタの行のデータを追加します。

フラグメントレイアウトのListView。

fragment.xml

<ListView 
    android:id="@+id/song_list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

custom_row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/sbjct" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="10dp" /> 

    <TextView 
     android:id="@+id/wlcmtxt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="10dp" /> 

</LinearLayout> 

CustomAdapter.java

public class ListAdapter extends ArrayAdapter<NoteBean> { 

    Context context; 
    ArrayList<NoteBean> list; 

    public ListAdapter(Context context, ArrayList<NoteBean> list) { 
     super(context, R.layout.notice_list, list); 
     this.context = context; 
     this.list = list; 
    } 

    public class ViewHolder { 
     protected TextView txtSubject, txtNotice; 

    } 

    @Override 
    public View getView(final int position, View convertView, 
         ViewGroup parent) { 

     final ViewHolder viewHolder; 
     if (convertView == null) { 
      LayoutInflater inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      convertView = inflater.inflate(
        R.layout.notice_list, parent, false); 

      viewHolder = new ViewHolder(); 

      viewHolder.txtSubject = (TextView) convertView 
        .findViewById(R.id.sbjct); 
      viewHolder.txtNotice = (TextView) convertView 
        .findViewById(R.id.wlcmtxt); 

      convertView.setTag(viewHolder); 

     } else { 
      viewHolder = (ViewHolder) convertView.getTag(); 
     } 

     NoteBean item = list.get(position); 

     viewHolder.txtSubject.setTag(item); 
     viewHolder.txtNotice.setTag(item); 

     viewHolder.txtSubject.setText(item.getNewsSubject()); 
     viewHolder.txtNotice.setText(item.getNewsDescription()); 

     return convertView; 
    } 
} 

断片にリストビューに設定しアダプター。

ListAdapter listAdapter = new ListAdapter(context, arrayList); 
list.setAdapter(listAdapter); 
+0

あなたはこの質問にお答えしますか?http://stackoverflow.com/questions/38189887/how-to-add-list-of-songs-from-storage-and-display-it-on私の断片を上記のものと結びつけ、正確に何をしなければならないかと答えます。 – HSBP

+0

あなたのコードでどのような種類のエラーが発生していますか?スタックトレースまたは問題を提出してください。 – user392117

+0

私は今直面しているエラーではありません。これらのJavaクラスを私のフラグメントと主なアクティビティにマージします。私はそれを行うにはどうすればいいですか..上の私のコメントリンクで私は私の断片のリストを取得するために必要なこれらの他のJavaクラスがあります。 – HSBP

関連する問題