Android 无法获取动态生成的TextView值
我没有得到动态生成的文本视图的值 我的密码是Android 无法获取动态生成的TextView值,android,Android,我没有得到动态生成的文本视图的值 我的密码是 public class Stock_check_fragment extends Fragment { private AutoCompleteTextView auto; ArrayAdapter<String> adapter; ArrayList<String> values; LinearLayout ly; int i = 0; List<EditText>
public class Stock_check_fragment extends Fragment {
private AutoCompleteTextView auto;
ArrayAdapter<String> adapter;
ArrayList<String> values;
LinearLayout ly;
int i = 0;
List<EditText> allEds = new ArrayList<EditText>();
Button btn;
EditText qty;
Button next;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater
.inflate(R.layout.stock_check, container, false);
ly = (LinearLayout) rootView.findViewById(R.id.linearMain);
auto = (AutoCompleteTextView) rootView
.findViewById(R.id.autoCompleteTextView1);
btn = (Button) rootView.findViewById(R.id.button1);
next = (Button) rootView.findViewById(R.id.next);
values = new ArrayList<String>();
values.add("Kasun");
values.add("KasunW");
values.add("Sinmki");
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.select_dialog_item, values);
auto.setThreshold(1);
auto.setAdapter(adapter);
auto.setOnItemClickListener(autoItemSelectedListner);
next.setOnClickListener(o1);
return rootView;
}
private OnItemClickListener autoItemSelectedListner = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Add_text(auto.getText().toString());
}
};
public void Add_text(String value) {
LinearLayout ll = new LinearLayout(getActivity());
ll.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.setId(i);
TextView product = new TextView(getActivity());
product.setText(value);
ll.addView(product);
qty = new EditText(getActivity());
qty.setText(i + "");
qty.setId(i);
qty.setWidth(120);
ll.addView(qty);
Button btn = new Button(getActivity());
ll.addView(btn);
btn.setLayoutParams(params);
ly.addView(ll);
i++;
}
OnClickListener o1 = new OnClickListener() {
@Override
public void onClick(View v) {
ViewGroup parentView = ly;
for (int i = 0; i < ly.getChildCount(); i++) {
LinearLayout l = (LinearLayout) ly.getChildAt(i);
ViewGroup child_view = l;
for (int j = 0; j < child_view.getChildCount(); j++) {
View childView = parentView.getChildAt(i);
if(childView instanceof TextView){
TextView t = (TextView) childView;
Log.i("VVVVVVVVVVVVVVVVVVVVV", t.getText().toString());
}
}
}
}
};
}
public class Stock\u check\u片段扩展片段{
私有自动完成文本视图自动;
阵列适配器;
数组列表值;
直线布局;
int i=0;
List alled=new ArrayList();
按钮btn;
编辑文本数量;
按钮下一步;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机
.充气(右布局、库存检查、容器、假);
ly=(LinearLayout)rootView.findviewbyd(R.id.linearMain);
auto=(AutoCompleteTextView)根视图
.findViewById(R.id.autoCompleteTextView1);
btn=(按钮)rootView.findviewbyd(R.id.button1);
next=(按钮)rootView.findviewbyd(R.id.next);
值=新的ArrayList();
价值。添加(“Kasun”);
价值。添加(“Kasunb”);
添加(“Sinmki”);
适配器=新的ArrayAdapter(getActivity(),
android.R.layout.select_对话框(项目、值);
自动设置阈值(1);
自动设置适配器(适配器);
auto.setOnItemClickListener(autoItemSelectedListner);
next.setOnClickListener(o1);
返回rootView;
}
私有OnItemClickListener autoItemSelectedListner=新建OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
添加文本(auto.getText().toString());
}
};
公共void添加_文本(字符串值){
LinearLayout ll=新的LinearLayout(getActivity());
ll.设置方向(水平线性布局);
LinearLayout.LayoutParams params=新的LinearLayout.LayoutParams(
LayoutParams.WRAP_内容,LayoutParams.WRAP_内容);
ll.setId(i);
TextView产品=新的TextView(getActivity());
product.setText(值);
ll.addView(产品);
数量=新编辑文本(getActivity());
数量设置文本(i+“”);
数量设置ID(i);
数量设置宽度(120);
ll.addView(数量);
按钮btn=新按钮(getActivity());
ll.addView(btn);
btn.setLayoutParams(参数);
ly.addView(ll);
i++;
}
OnClickListener o1=新的OnClickListener(){
@凌驾
公共void onClick(视图v){
视图组parentView=ly;
for(int i=0;i
在这里,我使用代码动态生成TextView、EditText和Button。它可以正常工作,但我需要在单击按钮时获取TextView中的所有值,但它不起作用。有人能帮我解决这个问题吗。您将获得parentView的子项两次
View childView = parentView.getChildAt(i);
应该是
View childview = child_view.getChildAt(j);
试试这个
for (int j = 0; j < child_view.getChildCount(); j++) {
View childView = parentView.findViewById(R.id.yourTextViewId);
TextView t = (TextView) childView;
Log.i("VVVVVVVVVVVVVVVVVVVVV", t.getText().toString());
}
for(int j=0;j