注意:这与库无关,我只是包含它们以提供细节。
问题:这个库https://github.com/Diolor/Swipecards中有一个名为FlingContainer的布局。它需要另一个布局作为参数(要被抛出的卡片),在卡片内部我有一个按钮用于向卡片添加标签。在用于Fling Container的CustomAdapter中,我在GetView方法中有以下代码。我知道它能正常工作,因为我可以在调试模式下看到电视机被添加了,但它们没有显示出来。
我尝试过:我尝试在没有flingContainer的活动中完成此操作,视图会立即添加,没有任何问题。我尝试从mainActivity搜索R.id.addTag,但是我得到nullPointer异常,我认为这是因为addTag嵌入到另一个布局中。
结论:您对此有什么想法? 我怎样才能让addView在卡片中起作用?
谢谢。
编辑:以下是整个getView。
问题:这个库https://github.com/Diolor/Swipecards中有一个名为FlingContainer的布局。它需要另一个布局作为参数(要被抛出的卡片),在卡片内部我有一个按钮用于向卡片添加标签。在用于Fling Container的CustomAdapter中,我在GetView方法中有以下代码。我知道它能正常工作,因为我可以在调试模式下看到电视机被添加了,但它们没有显示出来。
我尝试过:我尝试在没有flingContainer的活动中完成此操作,视图会立即添加,没有任何问题。我尝试从mainActivity搜索R.id.addTag,但是我得到nullPointer异常,我认为这是因为addTag嵌入到另一个布局中。
结论:您对此有什么想法? 我怎样才能让addView在卡片中起作用?
谢谢。
编辑:以下是整个getView。
public View getView(int position, View convertView, final ViewGroup parent) {
final View vi = inflater.inflate(layoutResource, parent, false);
TextView tv = (TextView) vi.findViewById(R.id.card_one_line);
flowLayout = (FlowLayout) vi.findViewById(R.id.flow_container);
final TextView typeTag = new TextView(getContext());
final TextView typeTag2 = new TextView(getContext());
TextView addTag = (TextView) vi.findViewById(R.id.addTag);
typeTag.setText(lines.get(position).getType());
typeTag.setBackgroundColor(getContext().getResources().getColor(R.color.nice_blue));
typeTag.setTextColor(getContext().getResources().getColor(R.color.lightening_yellow));
typeTag.setTextSize(25);
typeTag.setPadding(5, 5, 5, 5);
flowLayout.addView(typeTag);
addTag.setOnClickListener(new View.OnClickListener() {
int i = 0;
@Override
public void onClick(View v) {
TextView tv = new TextView(getContext());
tv.setBackgroundColor(getContext().getResources().getColor(R.color.nice_blue));
tv.setTextColor(getContext().getResources().getColor(R.color.lightening_yellow));
String text = "Goofy"+i++;
tv.setText(text);
tv.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
flowLayout.addView(tv);
parent.invalidate();
parent.requestLayout();
Toast.makeText(getContext(), "heyheyhey", Toast.LENGTH_SHORT).show();
}
});
tv.setText((lines.get(position).getLine()));
return vi;
}
在这张图片中,我正在flingcontainer内点击+按钮,g是默认类型添加到onClick之外的,试图使onClick在此处起作用。