2

現在のAndroidアプリには2つのスピナーがありますが、editTextのandroid:hint機能のようなデフォルト値が必要です。そうする方法はありますが、スピナーに入力する文字列配列にヒントを追加しない方法があります。たとえば、スピナーリストからヒントを選択することは不可能です。

また、ユーザーが有効な値を選択したかどうかを確認し、選択していない場合はアクションを実行する方法はありますか。これをeditTextsで行うには、値を文字列に取得してから、次のようにします。

if (calculator_ShutterSpeed_TempValue.equals("") ){ action }

また、別のボタンを押したときにスピナーをヒント値に戻すことはできますか?

だから私が求めているのは:

  1. ユーザーがスピナーをクリックした後に再表示できないスピナーヒント?
  2. ユーザーがスピナーから有効な値を選択したかどうかを確認します(デフォルトのヒント値を超える値を選択しましたか)?
  3. リセットボタンをクリックするとヒントが再表示されますか?
4

2 に答える 2

2

Spinnerでデフォルト値を設定するには、最初に選択したインデックスを設定setSelection(index)し、を使用して設定に保存する必要がありますSharedPreferences。設定を設定してロードするには、コードを確認してください。したがってonResume()、選択したインデックス値を強調表示します。

スピナーから値を取得するには、使用spinner.getSelectedItem()して文字列にキャストします。これで、基準と比較できます。

ヒントを再表示するには、最初にスピナーのアイテムとして表示し、次にOnItemSelectedListenerを登録する必要があります。そのリスナーのコードで、選択したインデックスをYouTubeのヒントインデックスにリセットします。

于 2011-06-21T00:33:05.833 に答える
0

スピナーの代わりにボタンを使用してこれを処理します。 サンプルプロジェクトをGitHubにアップしています。

プロジェクトでは、スピナーとボタンの両方を表示して、実際に同じように見えることを示しています。ボタンを除いて、最初のテキストを好きなように設定できます。

アクティビティは次のようになります。

package com.stevebergamini.spinnerbutton;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Spinner;

public class MainActivity extends Activity {

    Spinner spinner1;
    Button button1;
    AlertDialog ad;
    String[] countries;

    int selected = -1;

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

        spinner1 = (Spinner) findViewById(R.id.spinner1);
        button1 = (Button) findViewById(R.id.button1);

        countries = getResources().getStringArray(R.array.country_names);

        //  You can also use an adapter for the allert dialog if you'd like
        //  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, countries);        

        ad = new AlertDialog.Builder(MainActivity.this).setSingleChoiceItems(countries, selected,  
                new  DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            button1.setText(countries[which]);
                            selected = which;
                            ad.dismiss();

                        }}).setTitle(R.string.select_country).create(); 


        button1.setOnClickListener( new OnClickListener(){

            @Override
            public void onClick(View v) {
                ad.getListView().setSelection(selected);
                ad.show();              
            }});

    }

}
于 2013-10-17T14:34:41.460 に答える