gpt4 book ai didi

java - 如何从适配器回收器 View 传递/获取值复选框到另一个 Activity

转载 作者:行者123 更新时间:2023-12-01 16:44:09 25 4
gpt4 key购买 nike

有件事我想问,我有回收 View ,其中从适配器传递到 Activity ,我的问题是:

我需要从适配器 viewHolder Recycleview 获取值/数据复选框到使用适配器显示 recycleview 的 Activity

CartAdapter.java

private Context mContext;
private ArrayList<CartModel> mCartList;
public boolean isSelectedAll = true;

public CartAdapter(Context context, ArrayList<CartModel> CartList){
mContext = context;
mCartList = CartList;
}

@NonNull
@Override
public CartViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(mContext).inflate(R.layout.masteritem_cardview_cart, viewGroup, false);
return new CartViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull CartViewHolder cartViewHolder, int i) {
CartModel currentItem = mCartList.get(i);

cartViewHolder.mCartCheckbox.setChecked(true); //i want pass this value

ShoppingCartActivity.java

private RecyclerView mRecyclerView;
private CartAdapter mCartAdapter;
private ArrayList<CartModel> mCartModelList;
private RequestQueue mRequestQueue;
boolean cartfirst;
private Button mButtonCheckout;

public CheckBox mCartCheckAll;

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

cartfirst = false;

mNavigationView = findViewById(R.id.navigation_view);
mNavigationView.setNavigationItemSelectedListener(this);

mDrawerLayout = (DrawerLayout) findViewById(R.id.cart_drawer);
mToogle = new ActionBarDrawerToggle(this,mDrawerLayout,R.string.open,R.string.close);
mDrawerLayout.addDrawerListener(mToogle);
mToogle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

mRecyclerView = findViewById(R.id.recycler_view_cart);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

mCartModelList = new ArrayList<>();
mRequestQueue = Volley.newRequestQueue(this);
parseJsonCartItem();

mButtonCheckout = findViewById(R.id.checkOut_btn);
mCartCheckAll = findViewById(R.id.cartChecKall_checkBox);

//firsttime checkall
mCartCheckAll.setChecked(true);

mButtonCheckout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(ShoppingCartActivity.this);
builder.setTitle("Confirm Checkout");
builder.setMessage("Do you really want to Checkout?");
builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

for (int i = 0; i < mCartModelList.size(); i++){
//to here, for checking value if true they will checkout, else do nothing
//checkOutChartJSON();
}
}

startActivity(new Intent(getApplicationContext(),ShoppingCartActivity.class));
finish(); //finish current activity
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
}});
builder.setNegativeButton(android.R.string.no, null);
builder.create().show();
}
});

要检查复选框是否为真,他们将执行 checkOutChartJSON 函数,否则不执行任何操作

最佳答案

如果您想将数据或值从适配器传递到新 Activity ,那么您可以使用 Intent 来完成,如果您想将值传递到现有 Activity ,那么接口(interface)是最好的方法。

对于新 Activity 。

// Passing data to TargetActivity.class
Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);
intent.putExtra("message", str);
startActivity(intent);

// Get the data in TargetActivity.class
Intent intent=getIntent();
String msg = intent.getStringExtra("message");

对于现有 Activity 。

首先,制作一个界面。传递数据

public interface OnPassingData {
void onPassing(int value1, String value2,...,int valueN);
}

在适配器中。

OnPassingData onPassingData;

if (onPassingData != null) {
onPassingData .onPassing(value1, value2,..,valueN);
}

public void setOnPassingData(OnPassingData onPassingData) {
this.onPassingData= onPassingData;
}

在 Activity 中调用适配器。

adapter.setOnPassingData((value1, value2,...,valueN) -> {

Log.i(TAG, "value1 : " + value1);
Log.i(TAG, "value2 : " + value2);
});

关于java - 如何从适配器回收器 View 传递/获取值复选框到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56160628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com