5つのチェックボックスがあり、複数のチェックボックスを選択する必要があります。
チェックボックスをオンにするために、次のようなコードを作成しました。
sports=(CheckBox)findViewById(R.id.sports_btn);
sports.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (sports.isChecked() == true)
list.add("4");
}
});
配列リストに値を追加しています:
list ArrayList<String> list = new ArrayList<String>();
そして私はこのように文字列として値を取得しています:
StringBuilder sb = new StringBuilder();
for(int i =0; i < list.size(); i++)
{
for (String str: list)
{
sb.append(str.toString());
sb.append(",");
}
}
String sel_cat = sb;
文字列を取得していますが、2つの値を選択すると、2、3のようになります。最後のカンマを削除するにはどうすればよいですか?文字列の最後のコンマが2,3のようになっている必要はありません。
StringBuilder sb = new StringBuilder();
sb.deleteCharAt(sb.length()-1)
またはコードで使用
StringBuilder sb = new StringBuilder();
for(int i =0;i<list.size();i++)
{
String prefix = "";
for (String str : list)
{
sb.append(prefix);
prefix = ",";
sb.append(str);
}
}
String sel_cat = sb;
条件をチェックすることができます:
for (String str : list)
{
sb.append(str.toString());
if (i!=list.size()-1)
{
sb.append(",");
}
}
文字列配列を次の条件に置くことができます。
String list[]=new String[]{"A","C","D","F"};
public String print(String arr[]){
StringBuilder sb = new StringBuilder();
String prefix = "";
for (String str : arr)
{
sb.append(prefix);
prefix = ",";
sb.append(str);
}
System.out.println("WithCommas"+sb);
return sb;
}
DeleteCharAtを使用できます。
StringBuilder sb = new StringBuilder();
for(int i =0;i<list.size();i++)
{
for (String str : list)
{
sb.append(str); // str is already a String, no need for toString()
sb.append(",");
}
}
if (sb.length() > 0) {
sb.deleteCharAt(sb.length()-1);
}
String sel_cat=sb;
別のオプションは、 StringUtils#join(Object\[\], String, int, int)
:を確認することです。
配列を取り、それを区切り文字と組み合わせることができる結合メソッドがあります...
例:
StringUtils.join([null, "", "a"], ',') // creates... ",,a"