我要做的是在线性布局中充实卡片视图。
创建活动时没有任何内容,但是当我在edittext中输入网址时,会显示cardview。
但是当我在edittext中重新输入其他网址时,cardview不会改变。
我想知道如何刷新cardview或线性布局,这是我的cardview的父视图。
这是我的代码。
首先,我的htmlPareseTask的onPostExecute方法
@Override
protected void onPostExecute(List<String> strings) {
LayoutInflater inflater=getLayoutInflater();
View linkView=inflater.inflate(R.layout.cardview_link, parentLayout);
TextView ogTitle = (TextView) linkView.findViewById(R.id.title_link);
TextView ogDecription = (TextView) linkView.findViewById(R.id.description_link);
TextView ogUrl = (TextView) linkView.findViewById(R.id.url_link);
ImageView ogImage = (ImageView) linkView.findViewById(R.id.thumbnail_link);
ogTitle.setText(strings.get(0));
Glide.with(getApplicationContext()).load(strings.get(1)).into(ogImage);
ogDecription.setText(strings.get(2));
ogUrl.setText(strings.get(3));
linkView.invalidate();
super.onPostExecute(strings);
Tulsi的回答反映:
@Override
protected void onPostExecute(List<String> strings) {
if(linkView==null){
LayoutInflater inflater=getLayoutInflater();
linkView=inflater.inflate(R.layout.cardview_link, view);
ogTitle = (TextView) linkView.findViewById(R.id.title_link);
ogDecription = (TextView) linkView.findViewById(R.id.description_link);
ogUrl = (TextView) linkView.findViewById(R. id.url_link);
ogImage = (ImageView) linkView.findViewById(R.id.thumbnail_link);
}
ogTitle.setText(strings.get(0));
Glide.with(getApplicationContext()).load(strings.get(1)).into(ogImage);
ogDecription.setText(strings.get(2));
ogUrl.setText(strings.get(3));
Tulsi的回答反映了第二次
@Override
protected void onPostExecute(List<String> strings) {
if(linkView==null){
LayoutInflater inflater=getLayoutInflater();
linkView=inflater.inflate(R.layout.cardview_link, null);
view.addView(linkView);
ogTitle = (TextView) linkView.findViewById(R.id.title_link);
ogDecription = (TextView) linkView.findViewById(R.id.description_link);
ogUrl = (TextView) linkView.findViewById(R. id.url_link);
ogImage = (ImageView) linkView.findViewById(R.id.thumbnail_link);
}else
{
view.removeAllViews();
view.addView(linkView);
}
ogTitle.setText(strings.get(0));
Glide.with(getApplicationContext()).load(strings.get(1)).into(ogImage);
ogDecription.setText(strings.get(2));
ogUrl.setText(strings.get(3));
super.onPostExecute(strings);
}
答案 0 :(得分:1)
每当你在editText中输入文本时,它都会继续onPostExecute(列出字符串)并在recyclerView中为新的CardView充气。所以我可能不会看到新插入的视图,因为它被以前的Cardview隐藏了。 它可以通过两种方式解决
Variable 'currentButtonLocation' was written to, but never read
linearLayout
为instance
你给cardView充气。只需调用remove方法清除即可
linearlayout LinearLayout
。linearLayout.removeAllViews
,然后只对新视图进行充气,否则只修改内容。使用此
Null