ScrollViewを使用してリストを表示しています。私はアイテムのレイアウトとして使用しているXMLがあります。このレイアウトは、特定の位置を表示または非表示にする必要があるボタンで構成されています。今私の問題は、すべてのボタンが隠れているビューをスクロールするときです。特定の位置にボタンが隠れないようにするにはどうすればいいですか?ScrollViewのすべての項目のスクロールボタンを表示
私のアダプタクラスがonBindView方法のように怒鳴る
package in.nic.bhopal.prosecutordailydiary.adapter;
import android.content.Context;
import android.content.Intent;
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;
import in.nic.bhopal.prosecutordailydiary.R;
import in.nic.bhopal.prosecutordailydiary.activity.DairyOneActivity;
import in.nic.bhopal.prosecutordailydiary.activity.EditFormOneActivity;
import in.nic.bhopal.prosecutordailydiary.helper.RecyclerViewClickListener;
import in.nic.bhopal.prosecutordailydiary.models.Courts;
/**
* @author Satish Rajput
* on 10-01-2017.
*/
public class CourtAdapter extends RecyclerView.Adapter<CourtAdapter.MyViewHolder>{
private Context mContext;
private List<Courts> courtList;
private RecyclerViewClickListener itemListener;
public class MyViewHolder extends RecyclerView.ViewHolder
implements View.OnClickListener {
public TextView tvName, tvNoOfCases, tvPW, tvDW;
public Button btnAdd, btnEdit;
public MyViewHolder(View view) {
super(view);
view.setOnClickListener(this);
tvName = (TextView) view.findViewById(R.id.tvCourtName);
tvNoOfCases = (TextView) view.findViewById(R.id.tvNoOfCases);
tvPW = (TextView) view.findViewById(R.id.tvPW);
tvDW = (TextView) view.findViewById(R.id.tvDW);
btnAdd = (Button)view.findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(this);
btnEdit = (Button)view.findViewById(R.id.btnEdit);
btnEdit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// ((InstitutesActivity)mContext).showAlert(mContext,"Alert","Clicked item");
// mContext.startActivity(new Intent(mContext, InspectionActivity.class));
itemListener.recyclerViewListClicked(v, this.getPosition());
if(v.getId()==R.id.btnAdd){
((DairyOneActivity)mContext).flipper.setDisplayedChild(1);
((DairyOneActivity)mContext).courts = courtList.get((int)v.getTag());
}else if(v.getId()==R.id.btnEdit){
Intent i = new Intent(mContext, EditFormOneActivity.class);
String ci = (courtList.get((int)v.getTag())).courtTypeId;
i.putExtra("CourtId", (courtList.get((int)v.getTag())).courtTypeId);
mContext.startActivity(i);
}
}
}
public CourtAdapter(Context mContext, List<Courts> courtList) {
this.mContext = mContext;
this.courtList = courtList;
this.itemListener = (RecyclerViewClickListener)mContext;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item_courts, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
Courts courts = courtList.get(position);
holder.tvName.setText("Court Name - "+courts.courtName);
holder.tvNoOfCases.setText("No. Of Cases - "+courts.noOfCases);
holder.tvPW.setText("Total Prosecution witness - "+courts.pw);
holder.tvDW.setText("Total Defence witness - "+courts.dw);
holder.btnAdd.setTag(position);
holder.btnEdit.setTag(position);
if(Integer.parseInt(courts.noOfCases)<=0)
holder.btnEdit.setVisibility(View.GONE);
}
@Override
public int getItemCount() {
//return courtList.size();
return courtList.size();
}
}
条件では、すべてのボタンが非表示になります。助けてください。これで
おかげで、私は、コードのあなたのラインからヒントを得ている場合、次のように解決策を見つける - あなたのケースのために、それは次のようになります。 )==位置) holder.btnEdit.setVisibility(View.VISIBLE); else holder.btnEdit.setVisibility(View.GONE); –
お寄せいただきありがとうございます。それが助けられたら、答えを受け入れられたものとしてマークし、それをアップボートしてください。正しい答えを反映するように答えを編集します。 :) – Nairiya