我正在研究个人详细信息模型,有2个单选选项已婚和未婚。点击已婚单选按钮,它将启用编辑文本,它将采取该已婚人士的子女号码。基于为编辑文本输入的值。正在实施动态线性布局。但是问题是当点击编辑文本时,它正在创建线性布局(在删除编辑文本时,线性布局也应该删除)。
我的代码是这样的。主要活动
et_childCount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s != null) {
countI = childCount;
noOfChild = countI;
if (noOfChild >= 1) {
for (int i = 1; i <= noOfChild; i++) {
LinearLayout linearLayout = new LinearLayout(getActivity());
LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
linearLayout.setLayoutParams(params);
linearLayout.setOrientation(LinearLayout.VERTICAL);
TextView tv_BorderChildDetails = new TextView(getActivity());
tv_BorderChildDetails.setText("Child " + i);
tv_BorderChildDetails.setGravity(Gravity.CENTER_HORIZONTAL);
tv_BorderChildDetails.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
linearLayout.addView(tv_BorderChildDetails);
EditText et_cName = new EditText(getActivity());
EditText et_cDob = new EditText(getActivity());
EditText et_cSchoolName = new EditText(getActivity());
et_cName.setHint("Child name");
et_cDob.setHint("Date of birth");
et_cSchoolName.setHint("School name");
childNameList.add(et_cName);
childDOBList.add(et_cDob);
childSchoolNameList.add(et_cSchoolName);
et_cName.setLayoutParams(params);
et_cDob.setLayoutParams(params);
et_cSchoolName.setLayoutParams(params);
linearLayout.addView(et_cName);
linearLayout.addView(et_cDob);
linearLayout.addView(et_cSchoolName); } } });
您可以使用EditText的属性addTextChangedListener。这是代码。
YourEditText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
int count = Integer.parseInt(YourEditText.getText().toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
});
将编辑文本输入类型更改为数字,否则如果有人输入文本,您将面临错误。
Listview listview= (ListView) findViewById(R.id.your_list_view);
Adapter adapter = new adapter (YourActivity.this, count);
listview.setAdapter(adapter );
只需在计数部分输入listview计数,这里是适配器类
public class Adapter extends BaseAdapter {
// Declare Variables \\
Context mContext;
LayoutInflater inflater;
int count;
public Adapter (Context context, String count) {
mContext = context;
inflater = LayoutInflater.from(mContext);
this.count = Integer.parseInt(count);
//---------------------------\\
}
public class ViewHolder {
}
@Override
public int getCount() {
return count; // Your Desired Count which you entered in EditText \\
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.lv_items, null);
yourTv = view.findViewById(R.id.lv_item_tv);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
return view;
}}
无论何时更改listview计数,都必须初始化适配器和listview。希望有帮助!
您可以像这样使用TextWatcher()
:
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
// Convert the editable to int.
int userInput = Integer.parseInt(s.getText().toString());
// First we want to copy the data ArrayList so we don't affect the original one.
ArrayList<Data> new = copyArray(originalDataArrayList);
// Then we want to run a for loop to change the item count depending on the userInput value.
for (int i = 0; i < newArray.size(); i++){
if (i >= userInput){
newArray.remove(i);
}
}
// Now we have ArrayList with the required size.
// Here you create a new adapter and pass the new ArrayList to it and set the ListView adapter as the new adapter.
}
});
复制ArrayList
方法:
private ArrayList<Data> copyArray(ArrayList<Data> array) {
ArrayList<Data> newArray = new ArrayList<>();
newArray.addAll(array);
return newArray;
}
我有这个布局。 但问题是,ExpandableListView总是以屏幕为中心,尽管父布局中有重力。我想要的是让它从ListView结束的地方开始。知道是什么原因吗?我应该使用滚动视图而不是线性布局吗? 我希望可扩展的listview出现在listview下方。
是否有任何方法可以使用android: fillViewport="true"和一个子LinearLayout填充所有视图,当LinearLayout的内容不够高时? 到目前为止,在ScrollView中的LinearLayout中,我们必须使用Android:layout _ height = " wrap _ content "。我们可以添加一些东西来填充所有的滚动视图吗?
在我的角js应用程序中有文本框,用户可以动态添加和更新数据。如何将这些映射到模态。这是一个简单的问题,我从我现在的用例中得到的。 http://jsfiddle.net/kiranmca04/d81fzLzf/1/ 当用户提交页面时,我需要修改json格式。可以在JSFIDLE中找到完整的html文件。 {info:[姓名:'Albert',年龄:'33',项目": [ { "desc":"tes
这需要为N级…当用户点击添加电话视图将被添加… 怎么做??
本文向大家介绍基于Android代码实现常用布局,包括了基于Android代码实现常用布局的使用技巧和注意事项,需要的朋友参考一下 关于 android 常用布局,利用 XML 文件实现已经有很多的实例了。但如何利用代码实现呢?当然利用代码实现没有太大的必要,也是不提倡的,但我觉得利用代码实现这些布局,可以更好的了解 SDK API ,所以在此也整理一些,和大家分享一下。 首先看一下,布局所对应的
问题内容: 说我有一个像这样的数组: 如何计算具有给定值的数字(在示例中为空白)? 而且有效吗?(大约十二个数组,每个数组包含数百个元素)此示例超时(超过30秒): 在这种情况下,空白元素的数量为3。 问题答案: 如何使用array_count _values来获得一个为您计算一切的数组?