gpt4 book ai didi

android动态添加复选框

转载 作者:太空狗 更新时间:2023-10-29 15:55:13 25 4
gpt4 key购买 nike

以下是我的布局 xml。现在,布局 (listitem.xml) 中的复选框数量有限(七个)。我们将其添加到线性布局中。

主.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
>

<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="21dp"
android:layout_marginTop="38dp" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/linearLayout1"
android:layout_alignLeft="@+id/linearLayout1"
android:text="TESTER : "
android:textColor="#000000" />

<AutoCompleteTextView
android:id="@+id/tester_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:capitalize="characters"
android:textColor="#000000">

<requestFocus />
</AutoCompleteTextView>

</LinearLayout>

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout1"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="APPS TO TEST : "
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000"/>




<View
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_below="@+id/textView2"
android:background="#CCCCCC"
android:layout_marginBottom="5dp"/>

<ListView
android:id="@+id/apps_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/view1"
android:dividerHeight="5dp">
</ListView>

<Button
android:id="@+id/refreshBtn"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignBottom="@+id/textView2"
android:layout_alignParentLeft="true"
android:text="Refresh" />

</RelativeLayout>

列表项.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="70"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000" />

<Button
android:id="@+id/launch_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_weight="20"
android:text="LAUNCH" />
</LinearLayout>

<RadioGroup
android:id="@+id/status_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<RadioButton
android:id="@+id/pass_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="PASS"
android:textColor="#000000" />

<RadioButton
android:id="@+id/fail_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FAIL"
android:textColor="#000000" />
</RadioGroup>

<LinearLayout
android:id="@+id/failure_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="center"
android:text="FAILURE REASONS"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000" />

<LinearLayout
android:id="@+id/failure_reasonslist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:orientation="vertical" >

<CheckBox
android:id="@+id/failure_Sound"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000" />

<CheckBox
android:id="@+id/failure_GPS"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#000000" />

<CheckBox
android:id="@+id/failure_Display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#000000" />

<CheckBox
android:id="@+id/failure_Network"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#000000" />

<CheckBox
android:id="@+id/failure_Rotation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#000000" />

<CheckBox
android:id="@+id/failure_Microphone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#000000" />

<CheckBox
android:id="@+id/failure_Others"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:id="@+id/lineatlayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DESCRIPTION : "
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000" />

<EditText
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:ems="10"
android:focusable="true"
android:focusableInTouchMode="true"
android:inputType="textMultiLine"
android:textColor="#000000" >
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/lineatlayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/submit_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" SUBMIT " />
<Button
android:id="@+id/uninstall_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="UNINSTALL" />
</LinearLayout>

<!-- </RelativeLayout> -->

</LinearLayout>

但根据新要求,我们需要动态添加复选框。就像需要从 API 调用中获取选项并将其转换为 View 中的复选框一样。我花了很多时间在里面。有人可以建议一种方法来解决这个问题。

我们的布局应该是这样的。在 ListView 中,我们显示员工详细信息,对于每个员工记录,应从 API 调用或数据库加载资格。

      [Reviewer Name (Editable)]       
Employee Lest
---------------------------------------
Employee1 [Click Me]

Male (0) Female ( )
Salary : [5999 (editable)]
Qualification
[X]BA
[ ]BSc
[ ]Matriculation
[ ]Other
[Submit Button]
---------------------------------------
Employee2 [Click Me]

Male (0) Female ( )
Salary : [5999 (editable)]
Qualification
[X]BA
[ ]BSc
[ ]Matriculation
[ ]Other
[Submit Button]
---------------------------------------
Employee3 [Click Me]

Male (0) Female ( )
Salary : [5999 (editable)]
Qualification
[X]BA
[ ]BSc
[ ]Matriculation
[ ]Other
[Submit Button]
---------------------------------------

源代码

private class ListAdapters extends ArrayAdapter<ApplicationBean> {
private ArrayList<ApplicationBean> items;
private int position;

public ListAdapters(Context context, int textViewResourceId,
ArrayList<ApplicationBean> mTitleList) {
super(context, textViewResourceId, mTitleList);
this.items = mTitleList;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
this.position = position;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.applicationlistitem, null);
}

final ApplicationBean o = (ApplicationBean) items.get(position);

if (o != null) {

txtAppName = (TextView) v.findViewById(R.id.app_name);
txtAppName.setText("" + o.getAppName());
launchButton = (Button) v.findViewById(R.id.launch_btn);
launchButton.setTag(position);
launchButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

final PackageManager pm = mContext.getPackageManager();
Intent LaunchIntent = pm
.getLaunchIntentForPackage(items
.get(Integer.parseInt(v.getTag()
.toString())).getPname());
mContext.startActivity(LaunchIntent);

}
});
final LinearLayout failure_reasonslist = (LinearLayout) v
.findViewById(R.id.failure_reasonslist);

rdgPassFail = (RadioGroup) v.findViewById(R.id.status_group);
rdgPassFail.setTag(position);

RadioButton passBtn = (RadioButton) v
.findViewById(R.id.pass_btn);
passBtn.setTag(position);
RadioButton failbtn = (RadioButton) v
.findViewById(R.id.fail_btn);
failbtn.setTag(position);

rdgPassFail
.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group,
int checkedId) {
ApplicationBean o = (ApplicationBean) items
.get(Integer.parseInt(group.getTag()
.toString()));

switch (checkedId) {
case R.id.fail_btn:
Log.e("Fail button", "Clicked");
o.setFailState(true);
o.setPassState(false);
numOptions = 0;
Log.e("Fail button--1", "Clicked");

break;
case R.id.pass_btn:
Log.e("Pass button", "Clicked");

o.setFailState(false);
o.setPassState(true);
Log.e("Pass button-----1", "Clicked");

break;
}
items.set(Integer.parseInt(group.getTag()
.toString()), o);
}

});

LinearLayout featuresTable = (LinearLayout) v.findViewById(R.id.failure_reasonslist);

// use loop CheckBox feature1 = new CheckBox(this);
for(int i = 0; i<=5; i++) {
CheckBox feature1 = new CheckBox(this.getContext());
featuresTable.addView(feature1);
}




txtDescription = (EditText) v
.findViewById(R.id.description_text);
txtDescription.setTag(position);
if (txtDescription.isFocused()) {
InputMethodManager inputManager = (InputMethodManager) mContext
.getSystemService(INPUT_METHOD_SERVICE);
inputManager.restartInput(txtDescription);
}

txtDescription
.setOnFocusChangeListener(new View.OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {

final EditText Caption = (EditText) v;
o.setDescription(Caption.getText()
.toString());

}

}
});
uninstallButton = (Button) v.findViewById(R.id.uninstall_btn);
uninstallButton.setTag(position);
// uninstallButton.setVisibility(View.INVISIBLE);
o.setUninstallVisible(false);
uninstallButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Uri packageUri = Uri.parse("package:"
+ items.get(
Integer.parseInt(v.getTag().toString()))
.getPname());
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageUri);
uninstallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(uninstallIntent);
mTitleList.remove(items.get((Integer) v.getTag()));

mListView.setAdapter(new ListAdapters(mContext,
R.id.app_name, mTitleList));
((BaseAdapter) mListView.getAdapter())
.notifyDataSetChanged();
isUninstallclicked = true;

}
});

submitButton = (Button) v.findViewById(R.id.submit_btn);
submitButton.setTag(txtDescription);
submitButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText tv = (EditText) v.getTag(); // get edittext
// object

txtDescription = tv;
if (txtTesterName.getText().toString().equals("")) {
showDialog("Please enter the name of tester",
mContext);
} else if (numOptions == 0) {
showDialog("Please select failure reason", mContext);
} else if (tv.getText().toString().equals("")) {
showDialog("Please enter the description", mContext);
} else if (!isNetworkAvailable()) {

showDialog(
"No network connection.Report won't be submitted",
mContext);
} else {

if (!o.isUninstallVisible()) {
uninstallButton.setVisibility(View.VISIBLE);
o.setUninstallVisible(true);
mListView.invalidate();
}
PostRequest p = new PostRequest(Integer.parseInt(tv
.getTag().toString()));
p.execute();

}
}

});

}
return v;
}

最佳答案

LinearLayout featuresTable = (LinearLayout) findViewById(R.id.failure_reasonslist);
// use loop
CheckBox feature1 = new CheckBox(this);
featuresTable.addView(feature1 );

关于android动态添加复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13189874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com