0

スピナーが必要で、アプリを起動すると、PHP はスピナーの最初の選択の値のみを返します。最初のコードは、1 つのクラス (IzboraGrada.java) の一部です。

public void addListenerOnButton() {
        spinner1=(Spinner) findViewById(R.id.spinner1);
        spinner2=(Spinner) findViewById(R.id.spinner2);
        button=(Button) findViewById(R.id.button);
        str_grad=spinner1.getSelectedItem().toString();
        str_predmet=spinner2.getSelectedItem().toString();

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


            Intent i=new Intent (v.getContext(), MainActivity.class);
            url = "http://192.168.1.102/test/spinner.php";
            url=url+"?grad="+str_grad+"&predmet="+str_predmet;
            i.putExtra("URL",url);

            startActivity(i);

            }
        });

2 番目のコードは、意図した MainActivity.class の一部です。

private void initView() {
        // show progress dialog
        dialog = ProgressDialog.show(this, "", "Loading...");

        String url = "http://192.168.1.102/test/spinner.php";

        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            url = extras.getString("URL");
        }         
        FetchDataTask task = new FetchDataTask(this);
        task.execute(url);
    }

これは、str_grad と str_predmet が 2 番目のクラスで定義されていないためだと思います。しかし、str_grad と str_predmet を 2 番目のクラスに入れると、それらは型として解決できません。どうすればよいですか?

4

1 に答える 1

1

str_gradアイテムが選択される前に、最初にこのメソッドを呼び出しているように見えるので、最初に設定されたときに値を設定しstr_predmetているため、選択したアイテムがデフォルトのアイテムになることが問題だと思います。これらはリスナーではなくゲッター関数です。

これらの行を 内に移動するonClick()か、 で使用onItemSelected()してSpinners変数値を設定する必要があります

public void addListenerOnButton() {
    spinner1=(Spinner) findViewById(R.id.spinner1);
    spinner2=(Spinner) findViewById(R.id.spinner2);
    button=(Button) findViewById(R.id.button);


    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

       str_grad=spinner1.getSelectedItem().toString();    // move these lines here
       str_predmet=spinner2.getSelectedItem().toString();

        Intent i=new Intent (v.getContext(), MainActivity.class);
        url = "http://192.168.1.102/test/spinner.php";
        url=url+"?grad="+str_grad+"&predmet="+str_predmet;
        i.putExtra("URL",url);

        startActivity(i);

        }
    });

あなたの問題を正しく理解できれば、問題は解決するはずです。

于 2013-07-25T20:37:19.353 に答える