如何解决更新按钮可见性以及从第二个活动更改RecyclerView中textview的背景
以下是我的应用程序中所需的步骤:
- 主要活动包含一个回收站视图,其中包含具有itemID和简短说明的项目。
- 用户单击某项时,将进入详细描述活动。
- 当用户在详细描述活动中单击“标记为完成”按钮时,应通过用蓝色填充简短说明的文本视图以及更改彼此的可见性来更新回收者视图中的相应项目图片显示为可见。
以下是我采取的步骤:
- 我已经通过使用
((MainActivity) mContext).startActivityForResult(intent,999); (This is placed in the ViewHolder and not on onBindViewHolder within Recycler Adapter)
从lili的主要活动回收者角度开始进行了漫长的描述 - 在Long Desc中,当用户单击“标记为完成”按钮时,我将发送以下内容:
Intent resultIntent = new Intent();
resultIntent.putExtra("Item ID",itemID);
setResult(RESULT_OK,resultIntent);
Log.d(TAG,"onClick: started");
finish();
下面是主要活动类别
public class MainActivity extends AppCompatActivity {
private static final String TAG = "TAG";
private static RecyclerView itemRecView;
private TextView txtTrekNation;
private ImageView home_logo;
private Context pContext;
private static final int MY_REQUEST = 1001;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
itemRecView = findViewById(R.id.itemRecView);
txtTrekNation = findViewById(R.id.txtTrekNation);
home_logo = findViewById(R.id.home_logo);
itemRecViewAdapter adapter = new itemRecViewAdapter(this);
itemRecView.setAdapter(adapter);
itemRecView.setLayoutManager(new linearlayoutmanager(this));
adapter.setItems(Utils.getInstance().getAllItems());
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG,"onResume: started");
}`
这是我的适配器类
public class itemRecViewAdapter extends RecyclerView.Adapter<itemRecViewAdapter.ViewHolder> {
private Context mContext;
public itemRecViewAdapter(Context mContext) {
this.mContext = mContext;
}
private ArrayList<Item> items = new ArrayList<>();
private int mExpandedPosition = -1;
public itemRecViewAdapter() {
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_item,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder,final int position) {
holder.txtItem.setText(items.get(position).getItemName());
holder.txtShortDesc.setText(items.get(position).getItemShortDesc());
if (items.get(position).isExpanded()) {
TransitionManager.beginDelayedTransition(holder.parent);
holder.expandedRelLayout.setVisibility(View.VISIBLE);
holder.downArrow.setVisibility(View.GONE);
holder.upArrow.setVisibility(View.VISIBLE);
} else {
TransitionManager.beginDelayedTransition(holder.parent);
holder.expandedRelLayout.setVisibility(View.GONE);
holder.downArrow.setVisibility(View.VISIBLE);
holder.upArrow.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return items.size();
}
public void setItems(ArrayList<Item> items) {
this.items = items;
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView txtItem,txtShortDesc;
private ImageView downArrow,upArrow,btnComplete;
private RelativeLayout expandedRelLayout,collapsedRelLayout,parent1;
private CardView parent;
public ViewHolder(@NonNull View itemView) {
super(itemView);
txtItem = itemView.findViewById(R.id.txtItem);
txtShortDesc = itemView.findViewById(R.id.txtShortDesc);
downArrow = itemView.findViewById(R.id.btnDownArrow);
upArrow = itemView.findViewById(R.id.btnUpArrow);
btnComplete = itemView.findViewById(R.id.btnComplete);
expandedRelLayout = itemView.findViewById(R.id.expandedRelLayout);
collapsedRelLayout = itemView.findViewById(R.id.collapsedRelLayout);
parent1 = itemView.findViewById(R.id.parent1);
parent = itemView.findViewById(R.id.parent);
downArrow.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Item item = items.get(getAdapterPosition());
item.setExpanded(!item.isExpanded());
notifyItemChanged(getAdapterPosition());
}
});
upArrow.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Item item = items.get(getAdapterPosition());
item.setExpanded(!item.isExpanded());
notifyItemChanged(getAdapterPosition());
}
});
txtShortDesc.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext,LongDesc.class);
intent.putExtra(ITEM_ID_KEY,items.get(getAdapterPosition()).getId());
((MainActivity) mContext).startActivityForResult(intent,999);
mContext.startActivity(intent);
这是我的长描述课
public class LongDesc extends AppCompatActivity {
public static final String ITEM_ID_KEY = "itemID";
private static final String TAG = "TAG";
private TextView txtItemName,txtLongDesc;
private Button btnMarkComplete,btnCosts,btnSubmitEE,btnTestResult,btnTestCost,btnCEC,btnFSW,btnFST;
private ImageView btnBackArrow;
private ScrollView scrollerID;
private Context lContext;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_long_desc);
initViews();
txtLongDesc.setMovementMethod(LinkMovementMethod.getInstance());
btnBackArrow.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LongDesc.this.finish();
}
});
btnCosts.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(LongDesc.this,"This is test",Toast.LENGTH_SHORT).show();
}
});
Intent intent = getIntent();
if (null != intent) {
//check to see if final required or not; made itemID final since it was giving error while clicking on markasComplete putExtra
final int itemID = intent.getIntExtra(ITEM_ID_KEY,-1);
btnMarkComplete.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent resultIntent = new Intent();
resultIntent.putExtra("Item ID",itemID);
setResult(RESULT_OK,resultIntent);
Log.d(TAG,"onClick: started");
finish();
}
});
if (itemID != -1) {
Item incomingItem = Utils.getInstance().getItemById(itemID);
if (null != incomingItem) {
setData(incomingItem);
}
if (itemID != 3) {
btnCosts.setVisibility(View.GONE);
btnSubmitEE.setVisibility(View.GONE);
} else {
btnCosts.setVisibility(View.VISIBLE);
btnSubmitEE.setVisibility(View.VISIBLE);
btnCosts.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent(LongDesc.this,Costs.class);
startActivity(intent1);
}
});
btnSubmitEE.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent2 = new Intent(LongDesc.this,Submit_ee.class);
startActivity(intent2);
}
});
}
if ((itemID != 4)) {
btnTestResult.setVisibility(View.GONE);
btnTestCost.setVisibility(View.GONE);
} else {
btnTestResult.setVisibility(View.VISIBLE);
btnTestCost.setVisibility(View.VISIBLE);
btnTestResult.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent3 = new Intent(LongDesc.this,ConvertLanguageResults.class);
startActivity(intent3);
}
});
btnTestCost.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent4 = new Intent(LongDesc.this,LanguageCosts.class);
startActivity(intent4);
}
});
}
if ((itemID != 5)) {
btnCEC.setVisibility(View.GONE);
btnFST.setVisibility(View.GONE);
btnFSW.setVisibility(View.GONE);
} else {
btnCEC.setVisibility(View.VISIBLE);
btnFST.setVisibility(View.VISIBLE);
btnFSW.setVisibility(View.VISIBLE);
btnCEC.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent5 = new Intent(LongDesc.this,Cec.class);
startActivity(intent5);
}
});
btnFST.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent6 = new Intent(LongDesc.this,Fst.class);
startActivity(intent6);
}
});
btnFSW.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent7 = new Intent(LongDesc.this,Fsw.class);
startActivity(intent7);
}
});
}
}
}
}
private void setData(Item item) {
txtItemName.setText(item.getItemName());
txtLongDesc.setText(item.getItemLongDesc());
}
private void initViews() {
txtItemName = findViewById(R.id.txtItemName);
txtLongDesc = findViewById(R.id.txtLongDesc);
btnMarkComplete = findViewById(R.id.btnMarkComplete);
btnBackArrow = findViewById(R.id.btnBackArrow);
btnSubmitEE = findViewById(R.id.btnSubmitEE);
btnCosts = findViewById(R.id.btnCosts);
btnTestResult = findViewById(R.id.btnTestResult);
btnTestCost = findViewById(R.id.btnTestCost);
scrollerID = findViewById(R.id.scrollerID);
btnCEC = findViewById(R.id.btnCEC);
btnFSW = findViewById(R.id.btnFSW);
btnFST = findViewById(R.id.btnFST);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。