如何使用另一类的on单击方法传递一个类的值

阿耶莎·伊斯拉(Ayesha Israr)

我也有2个Adapter类及其Object类:

第一个适配器类是:

public class UpcomingAdpter extends  RecyclerView.Adapter<UpcomingAdpter.ItemRowHolder>  {

private ArrayList<UpcomingObject> itemList;


private Context context;




public UpcomingAdpter(ArrayList<UpcomingObject> itemList, Context context){
    this.itemList = itemList;
    this.context = context;
}



@Override
public ItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.upcominglayout, null);
    ItemRowHolder mh = new ItemRowHolder(v);
    return mh;
}




@Override
public void onBindViewHolder(ItemRowHolder itemRowHolder, int i) {


    final String sectionName = itemList.get(i).getDate();


    final ArrayList<SingleItemModelForUpcoming> singleSectionItems = itemList.get(i).getNamesList();
    final ArrayList<SingleItemforPhoneNumbers> singleSectionItemsForPhoneNumber = itemList.get(i).getPhoneList();

    itemRowHolder.date.setText(sectionName);

    AdapterForNamesListInUpcoming itemListDataAdapter = new AdapterForNamesListInUpcoming(context, singleSectionItemsForPhoneNumber, singleSectionItems);
   AdapterForNamesListInUpcoming itemListDataAdapterSecond = new AdapterForNamesListInUpcoming(context, singleSectionItemsForPhoneNumber, singleSectionItems);

    itemRowHolder.recycler_view_list.setHasFixedSize(true);
    itemRowHolder.recycler_view_list.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
    itemRowHolder.recycler_view_list.setAdapter(itemListDataAdapter);
   itemRowHolder.recycler_view_list.setAdapter(itemListDataAdapterSecond);


    itemRowHolder.recycler_view_list.setNestedScrollingEnabled(false);

    itemRowHolder.recycler_view_list.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d("dd","here is me");
        }
    });





}



@Override
public int getItemCount() {
    return (null != itemList ? itemList.size() : 0);
}


public class ItemRowHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    protected TextView date;

    protected RecyclerView recycler_view_list;




    public ItemRowHolder(View view)  {
        super(view);

        this.date = (TextView) view.findViewById(R.id.date);
        this.recycler_view_list = (RecyclerView) view.findViewById(R.id.recycler_view_list);

        view.setOnClickListener(this);
}


    @Override
    public void onClick(View v) {
        String finaldate = date.getText().toString();
        Log.d("Date", "now date us "+finaldate);

    }
}
}

为此的对象类是:

public class UpcomingObject {


private String Date;

private ArrayList<SingleItemModelForUpcoming> NamesList;
private ArrayList<SingleItemforPhoneNumbers> PhoneList;




public UpcomingObject() {

}


public UpcomingObject(String Date, ArrayList<SingleItemModelForUpcoming> NamesList, ArrayList<SingleItemforPhoneNumbers> PhoneList) {
    this.Date = Date;

    this.NamesList = NamesList;
    this.PhoneList = PhoneList;





}


public String getDate() {
    return Date;
}

public void setDate(String date) {
    Date = date;
}

public ArrayList<SingleItemModelForUpcoming> getNamesList() {
    return NamesList;
}

public void setNamesList(ArrayList<SingleItemModelForUpcoming> namesList) {
    NamesList = namesList;
}

public ArrayList<SingleItemforPhoneNumbers> getPhoneList() {
    return PhoneList;
}

public void setPhoneList(ArrayList<SingleItemforPhoneNumbers> phoneList) {
    PhoneList = phoneList;
}


     }

的布局是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginLeft="50dp"
xmlns:app="http://schemas.android.com/apk/res-auto">


<TextView
    android:id="@+id/date"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fontFamily="@font/gothic"
    android:layout_marginTop="10dp"
    android:textColor="#000"
    android:text="10-10-2019"/>
<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_marginTop="40dp"
    android:id="@+id/takedate"
    android:layout_height="wrap_content">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="20dp"
        android:orientation="vertical" />




</RelativeLayout>

第二个适配器类是:

public class AdapterForNamesListInUpcoming extends RecyclerView.Adapter<AdapterForNamesListInUpcoming.SingleItemRowHolder> {

private List<SingleItemModelForUpcoming> itemsList;
private List<SingleItemforPhoneNumbers> itemforPhoneNumbers;
private Context mContext;


public AdapterForNamesListInUpcoming(Context context,  List<SingleItemforPhoneNumbers> itemforPhoneNumbers , List<SingleItemModelForUpcoming> itemsList ) {
    this.itemsList = itemsList;
    this.itemforPhoneNumbers = itemforPhoneNumbers;
    this.mContext = context;



}






@Override
public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.upcomingclientlistlayout, null);
    SingleItemRowHolder mh = new SingleItemRowHolder(v);
    return mh;

}

@Override
public void onBindViewHolder(SingleItemRowHolder holder, int i) {

    SingleItemModelForUpcoming singleItem = itemsList.get(i);

   SingleItemforPhoneNumbers singleItemforPhoneNumbers = itemforPhoneNumbers.get(i);

    holder.nameofclient.setText(singleItem.getName());

    holder.phoneNumber.setText(singleItemforPhoneNumbers.getPhoneNumber());



}

@Override
public int getItemCount() {
    return (null != itemsList ? itemsList.size() : 0);
}

public class SingleItemRowHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    protected TextView nameofclient , phoneNumber, date;



    public SingleItemRowHolder(View view) {
        super(view);

        this.nameofclient = (TextView) view.findViewById(R.id.nameofclient);
        this.phoneNumber = (TextView)view.findViewById(R.id.phoneNumber);


        view.setOnClickListener(this);



    }


    @Override
    public void onClick(View v) {
        Intent UpcomingDetailPage = new Intent(v.getContext(), com.allwaseet.spaservshop.UpcomingDetailsPage.UpcomingDetailPage.class);
        v.getContext().startActivity(UpcomingDetailPage);
        String finalPhoneNumber = phoneNumber.getText().toString();
        Log.d("PhoneNumber from databse ","phone Number is "+finalPhoneNumber);


        SharedPreferences.Editor PhoneNumberEditor;
        SharedPreferences PhoneNumberSharedPreference;


        PhoneNumberSharedPreference = mContext.getSharedPreferences("SelectedPhoneNumber", Context.MODE_PRIVATE);
        PhoneNumberEditor = PhoneNumberSharedPreference.edit();
        PhoneNumberEditor.putString("SelectedPhoneNumber",finalPhoneNumber);
        PhoneNumberEditor.commit();

        Log.d("PhoneNumber from databse ","phone Number is "+finalPhoneNumber);



        LayoutInflater inflater = LayoutInflater.from(mContext);
        View view = inflater.inflate(R.layout.upcominglayout, null, true);
        TextView textView = (TextView)view.findViewById( R.id.date );
        String finaldate = textView.getText().toString();
        Log.d("ss","date     is "+finaldate);



        SharedPreferences.Editor DateEditor;
        SharedPreferences DateSharedPreference;


        DateSharedPreference = mContext.getSharedPreferences("DateInUpcoming", Context.MODE_PRIVATE);
        DateEditor = DateSharedPreference.edit();
        DateEditor.putString("DateInUpcoming",finaldate);
        DateEditor.commit();
       // return view;





    }
}

}

为此的对象类是:

    public class SingleItemModelForUpcoming {


    private String name;


    public SingleItemModelForUpcoming(String name) {
        this.name = name;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


}

布局是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="550dp"
android:layout_marginTop="40dp"
android:layout_height="150dp"
android:layout_marginLeft="50dp"
android:paddingBottom="30dp"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">



<RelativeLayout
    android:layout_width="560dp"
    android:background="@drawable/upcomingandhistorybackground"
    android:layout_height="100dp">



<TextView
    android:id="@+id/time"
    android:layout_width="wrap_content"
    android:text="2:30"
    android:layout_marginTop="35dp"
    android:textSize="25dp"
    android:fontFamily="@font/gothic"
    android:layout_marginLeft="20dp"
    android:textColor="#fff"
    android:layout_height="wrap_content" />


<View
    android:layout_width="1dp"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="15dp"
    android:layout_height="70dp"
    android:background="#fff"
    />

<TextView
    android:id="@+id/nameofclient"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Name"
    android:layout_marginLeft="100dp"
    android:layout_marginTop="35dp"
    android:textColor="#fff"
    android:fontFamily="@font/gothic"
    android:textSize="20dp"/>


    <!--Not in use-->

    <TextView
        android:id="@+id/phoneNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="4dp"
        android:textColor="#fff"
        android:text="rr"
        android:fontFamily="@font/gothic"
        android:textSize="20dp"/>

    <!--Not in use-->


    <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp"
    android:layout_marginLeft="495dp"
    android:src="@drawable/rightarrow"/>

现在我想要的是,当我单击第二个适配器类中存在的项目时,我想获取第一个适配器类中指定的日期。我怎样才能做到这一点。

这是示例图片

例如:当我单击粉红色部分或单元格时,我也应该获得日期。但是问题是在另一个适配器类中指定了日期

任何帮助,将不胜感激。

特威莎·科奇塔(Twisha Kotecha)

您可以使用Intent在按钮或任何项目的单击事件上将数据从一个类传递到另一类,因此您可以执行以下操作:将第一类的数据存储到“共享”首选项中,然后以键值对的形式传递数据,如下所示:

public class AdapterForNamesListInUpcoming extends 
RecyclerView.Adapter<AdapterForNamesListInUpcoming.SingleItemRowHolder> {

private List<SingleItemModelForUpcoming> itemsList;
private List<SingleItemforPhoneNumbers> itemforPhoneNumbers;
private ArrayList<UpcomingObject> item;
private Context ctx;


public AdapterForNamesListInUpcoming(Context 
context,ArrayList<UpcomingObject> item,  List<SingleItemforPhoneNumbers> 
itemforPhoneNumbers , List<SingleItemModelForUpcoming> itemsList ) {
this.itemsList = itemsList;
this.item = item;
this.itemforPhoneNumbers = itemforPhoneNumbers;
this.ctx = context;
}


@Override
public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = 
LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.upcomingclientlistlayout, null);
SingleItemRowHolder rh = new SingleItemRowHolder(v);
return rh;

}

@Override
public void onBindViewHolder(SingleItemRowHolder holder, int i) {

 SingleItemModelForUpcoming singleItem = itemsList.get(i);

SingleItemforPhoneNumbers singleItemforPhoneNumbers = 
itemforPhoneNumbers.get(i);

holder.nameofclient.setText(singleItem.getName());

holder.phoneNumber.setText(singleItemforPhoneNumbers.getPhoneNumber());
}

@Override
public int getItemCount() {
return (null != itemsList ? itemsList.size() : 0);
 }

public class SingleItemRowHolder extends RecyclerView.ViewHolder implements 
View.OnClickListener {

protected TextView nameofclient , phoneNumber, date;
public SingleItemRowHolder(View view) {
    super(view);

    this.nameofclient = (TextView) view.findViewById(R.id.nameofclient);
    this.phoneNumber = (TextView)view.findViewById(R.id.phoneNumber);
    view.setOnClickListener(this);
 }

 @Override
 public void onClick(View v) {
    // get data of first adapter
    UpcomingObject up = item.get(getAdapterPosition);

    Intent UpcomingDetailPage = new Intent(v.getContext(), 
  com.allwaseet.spaservshop.UpcomingDetailsPage.UpcomingDetailPage.class);
    v.getContext().startActivity(UpcomingDetailPage);
    String finalPhoneNumber = phoneNumber.getText().toString();
    Log.d("PhoneNumber from databse ","phone Number is "+finalPhoneNumber);

    SharedPreferences.Editor PhoneNumberEditor;
    SharedPreferences PhoneNumberSharedPreference;

    PhoneNumberSharedPreference = 
 ctx.getSharedPreferences("SelectedPhoneNumber", Context.MODE_PRIVATE);
    PhoneNumberEditor = PhoneNumberSharedPreference.edit();
    PhoneNumberEditor.putString("SelectedPhoneNumber",finalPhoneNumber);
    PhoneNumberEditor.commit();

    Log.d("PhoneNumber from databse ","phone Number is "+finalPhoneNumber);

    LayoutInflater inflater = LayoutInflater.from(ctx);
    View view = inflater.inflate(R.layout.upcominglayout, null, true);
    TextView textView = (TextView)view.findViewById( R.id.date );
    String finaldate = textView.getText().toString();
    Log.d("ss","date     is "+finaldate);

    SharedPreferences.Editor DateEditor;
    SharedPreferences DateSharedPreference;


    DateSharedPreference = ctx.getSharedPreferences("DateInUpcoming", 
    Context.MODE_PRIVATE);
    DateEditor = DateSharedPreference.edit();
    DateEditor.putString("DateInUpcoming",finaldate);
    DateEditor.commit();
   // return view;
    }
  }
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您如何将一个类的main方法中定义的变量传递给另一类?

来自分类Dev

在另一类的方法中使用一个类中的方法

来自分类Dev

一个类应使用函数指针调用另一类的方法

来自分类Dev

如何在iOS中将NSobject类数据从一个类传递到另一类?

来自分类Dev

无法在Objective c中将变量的值从一个类传递给另一类

来自分类Dev

一个类在Java中“使用”另一类?实现“ uses-a”类

来自分类Dev

如何在另一类的方法中使用一类的对象?

来自分类Dev

如何将一个类的itcl对象传递给另一类的对象并使用传递的对象的功能?

来自分类Dev

从一个类的主体调用,从另一类的主体方法调用

来自分类Dev

如何从另一类的一个类访问变量?SWIFT代码

来自分类Dev

如何从另一类的一个类访问变量?SWIFT代码

来自分类Dev

使用另一类打印一个类的多个实例

来自分类Dev

JAVA:将值从一类传递到另一类

来自分类Dev

如何在Xamarin中将绑定值从一类传递到另一类?

来自分类Dev

将方法作为回调从一类传递到另一类

来自分类Dev

将布尔方法从一类传递到另一类

来自分类Dev

如何将类型从一类传递到另一类?

来自分类Dev

如何在Java中将变量从一类传递到另一类?

来自分类Dev

如何将头寸价值从一类传递到另一类

来自分类Dev

如何将数组从一类传递到另一类?

来自分类Dev

如何在python中获取另一类中一个类的一个变量的引用?

来自分类Dev

如何使用另一类中的代码?(Java)

来自分类Dev

如何使一类中的方法可从另一类访问?

来自分类Dev

一类的成员变量可以在另一类的方法中使用吗?

来自分类Dev

为什么一个项目类中的方法不能识别另一类中的方法?

来自分类Dev

我如何将一个类的Iterable转换为另一类的Iterable?

来自分类Dev

从另一类调用一个类的成员函数

来自分类Dev

从另一类的成员函数返回ENUM(在一个类中定义)

来自分类Dev

将一个类对象转换为另一类对象

Related 相关文章

  1. 1

    您如何将一个类的main方法中定义的变量传递给另一类?

  2. 2

    在另一类的方法中使用一个类中的方法

  3. 3

    一个类应使用函数指针调用另一类的方法

  4. 4

    如何在iOS中将NSobject类数据从一个类传递到另一类?

  5. 5

    无法在Objective c中将变量的值从一个类传递给另一类

  6. 6

    一个类在Java中“使用”另一类?实现“ uses-a”类

  7. 7

    如何在另一类的方法中使用一类的对象?

  8. 8

    如何将一个类的itcl对象传递给另一类的对象并使用传递的对象的功能?

  9. 9

    从一个类的主体调用,从另一类的主体方法调用

  10. 10

    如何从另一类的一个类访问变量?SWIFT代码

  11. 11

    如何从另一类的一个类访问变量?SWIFT代码

  12. 12

    使用另一类打印一个类的多个实例

  13. 13

    JAVA:将值从一类传递到另一类

  14. 14

    如何在Xamarin中将绑定值从一类传递到另一类?

  15. 15

    将方法作为回调从一类传递到另一类

  16. 16

    将布尔方法从一类传递到另一类

  17. 17

    如何将类型从一类传递到另一类?

  18. 18

    如何在Java中将变量从一类传递到另一类?

  19. 19

    如何将头寸价值从一类传递到另一类

  20. 20

    如何将数组从一类传递到另一类?

  21. 21

    如何在python中获取另一类中一个类的一个变量的引用?

  22. 22

    如何使用另一类中的代码?(Java)

  23. 23

    如何使一类中的方法可从另一类访问?

  24. 24

    一类的成员变量可以在另一类的方法中使用吗?

  25. 25

    为什么一个项目类中的方法不能识别另一类中的方法?

  26. 26

    我如何将一个类的Iterable转换为另一类的Iterable?

  27. 27

    从另一类调用一个类的成员函数

  28. 28

    从另一类的成员函数返回ENUM(在一个类中定义)

  29. 29

    将一个类对象转换为另一类对象

热门标签

归档