[英]How to set TextView width for n number of TextView in a row dynamically of ListView in android?
I want to create a Listview
that will hold 1 to 'n' nos of TextView
data horizontally, this Textview
data and width size will come from DB
? 我想创建一个Listview
,水平容纳1到'n'个TextView
数据,这个Textview
数据和宽度大小将来自DB
? I don't know how to set the width of TextView
dynamically with holder? 我不知道如何使用Holder动态设置TextView
的宽度?
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
ViewHolder holder = new ViewHolder();
if (view == null) {
view = View.inflate(cntxts, R.layout.list_header_col, null);
String [] ColNmae= (String[]) objects.get(0);
int Width= Integer.parseInt(ColNmae[2].toString());
LinearLayout layout=new LinearLayout(cntxts);
// layout.setLayoutParams(new LinearLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
TextView Textview = new TextView(cntxts);
HorizontalScrollView hr = new HorizontalScrollView(cntxts);
for(int i=0;i<objects.size();i++) {
holder.Textview=new TextView(cntxts);
layout.setLayoutParams(new RelativeLayout.LayoutParams(Width,80));
layout.addView(holder.Textview);
}
hr.addView(layout);
view = hr;
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
notifyDataSetChanged();
final String[] objMain = (String[]) getItem(position);
holder.Textview.setText(objMain[0]);
return view;
}
Your data needs to come from somewhere. 您的数据需要来自某个地方。 To fulfill a Spinner you have the following options: 要实现Spinner,您可以使用以下选项:
尝试这个,
yourholder.textView.getLayoutParams().width = dynamic width value;
Thanks for your help I have got the solution.
try {
LayoutInflater mInflater = (LayoutInflater)
cntxts.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = mInflater.inflate(R.layout.list_header_col, null);
holder.layoutmain = (LinearLayout) view.findViewById(R.id.lyt_header);
view.setTag(holder);
String[] ColNmae = (String[]) objects.get(0);
int Width = Integer.parseInt(ColNmae[2].toString());
if (holder.layoutmain != null && holder.layoutmain.getChildCount() > 0)
holder.layoutmain.removeAllViews();
for (int i = 0; i < objects.size(); i++) {
final String[] objMain = (String[]) getItem(i);
TextView textView = new TextView(cntxts);
textView.setText(objMain[0]);
holder.layoutmain.addView(textView);
}
} catch (Exception e) {
e.printStackTrace();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.