0

これが尋ねられた場合は申し訳ありませんが、検索しましたが何も見つかりませんでした。私はアンドロイドでフォームを作成しており、チェックされているかどうかにかかわらず渡したいチェックボックスがいくつかあります。だから私はチェックボックスを作成し、ビューをチェックボックスにキャストして、クリックしたチェックボックスのいずれかをチェックします(まだチェックボックスリスナーを追加していません)。問題は、チェックボックスがチェックされていると判断したときに、そのボックスのブール値をtrueにしたいことです

たとえば、購入チェックボックスをオンにすると、isbuyable ブール値を true に設定します。これは、多くの if ステートメントを使用せずにそれぞれを設定することは可能ですか? 状態を変更するブール値の名前である文字列変数 nameofboolean を作成しましたが、多数の IF ステートメントがそれぞれをチェックすることなく、そのブール値を実際に変更する方法がわかりません。

編集:明確にするために、チェックボックスがチェックされているときに、各チェックボックスに一致するブール値をtrueに設定するだけです。可能であれば、多くのIFを使用したくないだけです。

package com.Assist.assistme;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Spinner;
import android.widget.TextView;

public class market extends Activity implements OnItemSelectedListener
{
//UI elements
TextView choose;
Spinner list;
TextView buyrent;
CheckBox buyable;
CheckBox rentable;
TextView type;
CheckBox hard;
CheckBox soft;
CheckBox ebook;
TextView condition;
CheckBox new_book;
CheckBox used_book;
Button search;

String course_chosen;
Boolean isbuyable;
Boolean isrentable;
Boolean ishard;
Boolean issoft;
Boolean isebook;
Boolean isnew_book;
Boolean isused_book;



@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.market);

    iteminit();

    OnClickListener checkboxlistener = new OnClickListener()
    {

        @Override
        public void onClick(View v) 
        {
            if(((CheckBox) v).isChecked())
            {
                String nameofboolean = "is" + v.toString();

            }

        }

    };


}

private void iteminit() 
{
    choose = (TextView)findViewById(R.id.market_choose);
    buyrent = (TextView)findViewById(R.id.market_buyrent);
    buyable = (CheckBox)findViewById(R.id.market_buy);
    rentable = (CheckBox)findViewById(R.id.market_rent);
    type = (TextView)findViewById(R.id.market_type);
    hard = (CheckBox)findViewById(R.id.market_hardcover);
    soft = (CheckBox)findViewById(R.id.market_softcover);
    ebook = (CheckBox)findViewById(R.id.market_ebook);
    condition = (TextView)findViewById(R.id.market_condition);
    new_book = (CheckBox)findViewById(R.id.market_new);
    used_book = (CheckBox)findViewById(R.id.market_used);
    search = (Button)findViewById(R.id.market_search);

    list = (Spinner)findViewById(R.id.market_list);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.course_choices, android.R.layout.simple_spinner_item);                 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    list.setAdapter(adapter);
    list.setOnItemSelectedListener(this);

}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
        long id) 
{
    course_chosen = parent.getItemAtPosition(pos).toString();

}
@Override
public void onNothingSelected(AdapterView<?> arg0) 
{

}

}

前もって感謝します

4

1 に答える 1

1

私があなたの質問を理解したら、あなたはこのようなものが欲しいです

CheckBox buyable,rentable,hard,soft,ebook,condition,new_book,used_book;
CheckBox[] checklist={ buyable,rentable,hard,soft,ebook,condition,new_book,used_book};
int ids[]={R.id.market_buy,R.id.market_rent,R.id.market_hardcover,R.id.market_softcover,R.id.market_ebook,R.id.market_new,R.id.market_used};

contentView を設定した後の onCreate で

for(int i=0;i<checklist.length;i++)
{
checklist[i]=findViewById(ids[i]);
}

このメソッドを次のように呼び出します

String data=getAllcheckedValues();

チェックされたすべての値を取得する

public String getAllCheckedValues()
{
String checkItems="";
for(int i=0;i<checklist.length;i++)
{
if(checklist[i].isChecked())
{
checkItems+=checkItems+checklist[i].getText()+"is Checked"+"\n";
}
}
return checkItems;
}

要件に従って文字列をフォーマットします。

于 2013-02-23T17:06:36.193 に答える