gpt4 book ai didi

android - 如何获取复选框值并将其存储到android中的字符串数组中

转载 作者:行者123 更新时间:2023-11-30 02:22:31 25 4
gpt4 key购买 nike

您好,在下面的代码中,我想通过使用 ischecked 返回我想要返回的复选框值数组。

但是如何传递参数只检查 creategroup 方法中的值。而不是检查我必须将哪个字符串作为参数传递。

组列表.java

public class GroupList extends ListActivity 
{

boolean[] checkBoxState;
boolean isChecked;
String check;
ListView users;
int position;
private IAppManager imService = null;

private FriendListAdapter friendAdapter;

public String ownusername = new String();

private class FriendListAdapter extends BaseAdapter
{
@SuppressWarnings("unused")

class ViewHolder {
TextView text;
ImageView icon;
CheckBox check1;



}

private LayoutInflater mInflater;
private Bitmap mOnlineIcon;
private Bitmap mOfflineIcon;

private FriendInfo[] friend = null;





public FriendListAdapter(Context context) {
super();

mInflater = LayoutInflater.from(context);

mOnlineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenstar);
mOfflineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.redstar);

}

public void setFriendList(FriendInfo[] friends)
{
this.friend = friends;

}


public int getCount() {

return friend.length;
}


public FriendInfo getItem(int position) {

return friend[position];
}

public long getItemId(int position) {

return 0;
}

@SuppressWarnings("unused")
public View getView(final int position, View convertView, ViewGroup parent) {

final ViewHolder holder;


if (convertView == null)
{
convertView = mInflater.inflate(R.layout.grouplist, null);


holder = new ViewHolder();

holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.check1 = (CheckBox)convertView.findViewById(R.id.checkBox1);

convertView.setTag(holder);

}

else {

holder = (ViewHolder) convertView.getTag();

}


holder.text.setText(friend[position].userName);
holder.icon.setImageBitmap(friend[position].status == STATUS.ONLINE ? mOnlineIcon : mOfflineIcon);

final ArrayList<String> checkedFriends = new ArrayList<String>();
checkBoxState = new boolean[friend.length];
holder.check1.setChecked(checkBoxState[position]);
holder.check1.setOnCheckedChangeListener(new OnCheckedChangeListener(){

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
checkBoxState[position]=isChecked;

if(isChecked){

check=friend[position].userName;

}

}
});


return convertView;
}
public ArrayList<FriendInfo> getCheckedItems(){
ArrayList<FriendInfo> result = new ArrayList<FriendInfo>();

if(checkBoxState!=null){
for (int i = 0; i < checkBoxState.length; i++) {
if(checkBoxState[i]){
result.add(getItem(i));
}
}
}
return result;
}
}
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
setContentView(R.layout.group_list_screen);

Button create=(Button)findViewById(R.id.create);

create.setOnClickListener(new OnClickListener() {

@SuppressWarnings({ "unused", "unchecked" })
@Override
public void onClick(View v) {
String groupname = getIntent().getStringExtra("nick");

try {

String result1 = imService.CreateGroup(groupname,imService.getUsername(),check);
} catch (UnsupportedEncodingException e) {

e.printStackTrace();
}



Toast.makeText(getApplicationContext(), "Group Created Sucessfully",Toast.LENGTH_LONG).show();

}
});


friendAdapter = new FriendListAdapter(this);
friendAdapter.getCheckedItems();



}

最佳答案

您可以将此方法添加到您的适配器中:

public ArrayList<FriendInfo> getCheckedItems(){
ArrayList<FriendInfo> result = new ArrayList<FriendInfo>();

if(checkBoxState!=null){
for (int i = 0; i < checkBoxState.length; i++) {
if(checkBoxState[i]){
result.add(getItem(i));
}
}
}
return result;
}

调用它:friendAdapter.getCheckedItems();

更新:

所以你的代码将是这样的:

    public class GroupList extends ListActivity 
{

boolean[] checkBoxState;
boolean isChecked;
String check;
ListView users;
int position;
private IAppManager imService = null;

private FriendListAdapter friendAdapter;

public String ownusername = new String();

private class FriendListAdapter extends BaseAdapter
{
@SuppressWarnings("unused")

class ViewHolder {
TextView text;
ImageView icon;
CheckBox check1;



}

private LayoutInflater mInflater;
private Bitmap mOnlineIcon;
private Bitmap mOfflineIcon;

private FriendInfo[] friend = null;





public FriendListAdapter(Context context) {
super();

mInflater = LayoutInflater.from(context);

mOnlineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenstar);
mOfflineIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.redstar);

}

public void setFriendList(FriendInfo[] friends)
{
this.friend = friends;

}


public int getCount() {

return friend.length;
}


public FriendInfo getItem(int position) {

return friend[position];
}

public long getItemId(int position) {

return 0;
}

@SuppressWarnings("unused")
public View getView(final int position, View convertView, ViewGroup parent) {

final ViewHolder holder;


if (convertView == null)
{
convertView = mInflater.inflate(R.layout.grouplist, null);


holder = new ViewHolder();

holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.check1 = (CheckBox)convertView.findViewById(R.id.checkBox1);

convertView.setTag(holder);

}

else {

holder = (ViewHolder) convertView.getTag();

}


holder.text.setText(friend[position].userName);
holder.icon.setImageBitmap(friend[position].status == STATUS.ONLINE ? mOnlineIcon : mOfflineIcon);

final ArrayList<String> checkedFriends = new ArrayList<String>();
checkBoxState = new boolean[friend.length];
holder.check1.setChecked(checkBoxState[position]);
holder.check1.setOnCheckedChangeListener(new OnCheckedChangeListener(){

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
checkBoxState[position]=isChecked;

if(isChecked){

check=friend[position].userName;

}

}
});


return convertView;
}
public ArrayList<FriendInfo> getCheckedItems(){
ArrayList<FriendInfo> result = new ArrayList<FriendInfo>();

if(checkBoxState!=null){
for (int i = 0; i < checkBoxState.length; i++) {
if(checkBoxState[i]){
result.add(getItem(i));
}
}
}
return result;
}
}

protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
setContentView(R.layout.group_list_screen);

Button create=(Button)findViewById(R.id.create);


friendAdapter = new FriendListAdapter(this);
/*
* here you must load list items before calling
* "getCheckedItems()", I think you use "setFriendList(...)" for that
* so you need to do friendAdapter.setFriendList(YOUR_LIST). Otherwise you will have an empty array
* because there is no items, so no checked items too.
*/
friendAdapter.getCheckedItems();

create.setOnClickListener(new OnClickListener() {

@SuppressWarnings({ "unused", "unchecked" })
@Override
public void onClick(View v) {
String groupname = getIntent().getStringExtra("nick");

try {
/*
* you can also call "getCheckedItems()" here,
* to send the checkedItems to "imService"
*/
String result1 = imService.CreateGroup(groupname,imService.getUsername(),check);
} catch (UnsupportedEncodingException e) {

e.printStackTrace();
}



Toast.makeText(getApplicationContext(), "Group Created Sucessfully",Toast.LENGTH_LONG).show();

}
});

}

关于android - 如何获取复选框值并将其存储到android中的字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28277970/

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