سلام
ینده در یک تب که از ویو پیجر و فرگمنت استفاده کردم ریسکایلرویو با لایه اختصاصی که کارد ویو هستش درست کردم
این کد فرگمنت
package com.sayeben.myapplication;
/**
* Created by Mohammad on 04/12/2016.
*/
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
public class FrMission extends Fragment{
private database db;
private Context mycontext;
private Button btn;
private TextView subject;
private TextView time;
private Button edit;
private Button ok;
private int count;
private RecyclerView recyclerView;
private MyAdapter adapter;
private List<Card> CardList;
public FrMission() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
try {
db = new database(getActivity());
adapter = new MyAdapter(getActivity(), CardList);
RecyclerView.LayoutManager mlayout =new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(mlayout);
recyclerView.setAdapter(adapter);
//Card a = new Card("name");
// CardList.add(a);
}catch (Exception e){
Toast.makeText(getActivity(),e.getMessage(),Toast.LENGTH_LONG).show();
}
return inflater.inflate(R.layout.fr_mission, container, false);
}
public void onViewCreated(View view, Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
// initialise your views
}
}
اینم کدهای لایه فرگمنت
<FrameLayout
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="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBg"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.sayeben.myapplication.MainActivity"
tools:showIn="@layout/activity_main">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:scrollbars="vertical" />
</FrameLayout>
کدهای کلاس myAdapter
package com.sayeben.myapplication;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import java.util.List;
/**
* Created by Mohammad on 06/12/2016.
*/
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private Context mContext;
private List<Card> cardList;
public class MyViewHolder extends RecyclerView.ViewHolder {
private Button btn;
private TextView subject;
private TextView time;
private Button edit;
private Button ok;
public MyViewHolder(View view) {
super(view);
ok = (Button) view.findViewById(R.id.daily_ok);
edit = (Button) view.findViewById(R.id.daily_edit);
btn = (Button) view.findViewById(R.id.daily_button);
subject = (TextView) view.findViewById(R.id.daily_subject);
time = (TextView) view.findViewById(R.id.daily_time);
}
}
public MyAdapter(Context mContext, List<Card> cardList) {
this.mContext = mContext;
this.cardList = cardList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.dailycard, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
Card card = cardList.get(position);
holder.subject.setText(card.getName());
}
@Override
public int getItemCount() {
return cardList.size();
}
}
و اینم کدهای کلاس Card
package com.sayeben.myapplication;
/**
* Created by Mohammad on 06/12/2016.
*/
public class Card {
private String name;
// private int numOfcard;
// private int thumbnail;
public Card() {
}
public Card(String name ){
this.name=name;
// this.numOfcard=numOfcard;
// this.thumbnail=thumbnail;
}
public String getName(){
return name;
}
public void setName(){
this.name=name;
}
/*
public int getNumOfcard(){
return numOfcard;
}
public void setNumOfcard(int numOfcard){
this.numOfcard=numOfcard;
}
public int getThumbnail() {
return thumbnail;
}
public void setThumbnail(int thumbnail) {
this.thumbnail = thumbnail;
}
*/
}
و همچنین کدهای لایه اختصاصی
<?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"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_height="170dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
app:cardCornerRadius="5dp">
<TableLayout
android:layout_width="match_parent"
android:layout_height="170dp">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right">
<TextView
android:text="Subject"
android:textColor="@color/black"
android:gravity="end"
android:layout_marginTop="22dp"
android:id="@+id/daily_subject"
android:layout_marginRight="-65dp"
android:textSize="18sp" />
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
app:srcCompat="@mipmap/ic_launcher"
android:id="@+id/imageView"
android:layout_marginTop="12dp"
android:layout_marginLeft="60dp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="Button One"
android:layout_marginTop="3dp"
android:layout_marginRight="75dp"
android:id="@+id/daily_button" />
<TextView
android:text="Time"
android:textSize="18sp"
android:textColor="@color/black"
android:gravity="end"
android:layout_marginTop="5dp"
android:layout_marginRight="55dp"
android:id="@+id/daily_time"
/>
<TextView
android:text="@string/alarm_time"
android:textSize="18sp"
android:textColor="@color/black"
android:gravity="end"
android:layout_marginTop="5dp"
android:layout_width="wrap_content"
android:layout_marginLeft="-50dp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:layout_marginTop="12dp"
android:layout_width="match_parent"
android:layout_weight="1"/>
</TableRow
>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="انجام شد!"
android:id="@+id/daily_ok"
android:layout_marginRight="40dp"
android:layout_marginLeft="40dp"
android:gravity="center"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_width="wrap_content"
/>
<Button
android:text="ویرایش"
android:id="@+id/daily_edit"
android:gravity="center"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_width="wrap_content"
android:layout_marginLeft="40dp"
/>
</TableRow>
</TableLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
اما در اجرا فورس کلوز میده اومدم onCreat رو در try catch رار دادم و پیامو توی توست نمایش دادم ( عکس ارور پایین )
photo_2016-12-12_00-30-29.jpg