1

おはよう諸君。再び私です、デビッド・ディマランタ。私は質問のためにここにいます。3 人のプレイヤー全員が異なる名前を取得した場合に、トーストに "プロセスが完了しました" という確認メッセージが表示されるプログラムを作成する必要があります。代わりに、全員が同じ名前を持っているわけではありません。

手順:

  1. 各プレイヤーはスピナーから名前を選びます。
  2. 値は文字列に書き込まれます。
  3. ボタンがクリックされると、プロセスはエイリアス (名前) の類似性を評価します。
  4. 似ている場合、少なくとも 2 つ、トースト メッセージに「別のユーザー名を指定してください」と表示されます。
  5. そうでない場合は、完了です。

そして、私のアクティビティ名は「Player_3_at_Spinner_Menu.java」です。このクラスの最初の部分のコードは次のとおりです。

//Spinners for Players
private Spinner spinner_1;
private Spinner spinner_2;
private Spinner spinner_3;

//Button to Start
private Button play_it;

//For Displaying Text
private String SUMMON_PICK_UP_1, SUMMON_PICK_UP_2, SUMMON_PICK_UP_3;
private String cplayer_1, cplayer_2, cplayer_3;

//Text Response from a Spinner
public final static String EXTRA_MESSAGE_1 = "com.example.databasetestvertwo.MESSAGE1";
public final static String EXTRA_MESSAGE_2 = "com.example.databasetestvertwo.MESSAGE2";
public final static String EXTRA_MESSAGE_3 = "com.example.databasetestvertwo.MESSAGE3";

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.players_3);

    //Searching for ID... (Button)
    play_it = (Button) findViewById(R.id.START_GAME);

    //Adding listener to the button(s).
    play_it.setOnClickListener(new trigger_happy_start());

    //Call from the Database_Handler.class to call the database.
    Database_Handler db = new Database_Handler(getApplicationContext());

    //Then, load the content and...
    loadSpinnerData();
}




//Insert the value from the database into each of the spinners.
private void loadSpinnerData()
{

    //Initialize the spinners.
    spinner_1 = (Spinner) findViewById(R.id.player_1_spinner);
    spinner_2 = (Spinner) findViewById(R.id.player_2_spinner);
    spinner_3 = (Spinner) findViewById(R.id.player_3_spinner);

    Database_Handler db = new Database_Handler(getApplicationContext());

    List<String> lables = db.getAllLabels();

    //Creating an adapter for the spinner...
    ArrayAdapter<String> data_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lables);

    data_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    //Inserts the spinners by a database.
    spinner_1.setAdapter(data_adapter);
    spinner_2.setAdapter(data_adapter);
    spinner_3.setAdapter(data_adapter);

}




    //Action applied if a user chose this item. (Player 1)
public class response_1 implements OnItemSelectedListener
{

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
    {

        SUMMON_PICK_UP_1 = parent.getItemAtPosition(position).toString();

        Toast.makeText(parent.getContext(), "You selected: " + SUMMON_PICK_UP_1, Toast.LENGTH_SHORT).show();

    }

    public void onNothingSelected(AdapterView<?> arg0) 
    {

        //Do nothing. I guess...

    }

}




//Action applied if a user chose this item. (Player 2)
public class response_2 implements OnItemSelectedListener 
{

    public void onItemSelected(AdapterView<?> parent_2, View view, int position, long id) 
    {

        SUMMON_PICK_UP_2 = parent_2.getItemAtPosition(position).toString();

        Toast.makeText(parent_2.getContext(), "You selected: " + SUMMON_PICK_UP_2, Toast.LENGTH_SHORT).show();


    }

    public void onNothingSelected(AdapterView<?> arg0) 
    {

        // TODO Auto-generated method stub

    }

}




//Action applied if a user chose this item. (Player 3)
public class response_3 implements OnItemSelectedListener 
{

    public void onItemSelected(AdapterView<?> parent_3, View view, int position, long id) 
    {

        SUMMON_PICK_UP_3 = parent_3.getItemAtPosition(position).toString();

        Toast.makeText(parent_3.getContext(), "You selected: " + SUMMON_PICK_UP_2, Toast.LENGTH_SHORT).show();


    }

    public void onNothingSelected(AdapterView<?> arg0) 
    {

        // TODO Auto-generated method stub

    }

}

そして、すべてのプレイヤー、または少なくとも 2 人のプレイヤーが同じ名前を持っているかどうかを確認するためのコードを次に示します。プロセスは、このアクティビティでも同じ名前を使用しないように警告します。これが私のコードです:

private class trigger_happy_start implements OnClickListener
{

    public void onClick(View v) 
    {

        //Checks if the names assigned on each spinner have a the same name.
        if
        (
                SUMMON_PICK_UP_1 == SUMMON_PICK_UP_2 ||
                SUMMON_PICK_UP_1 == SUMMON_PICK_UP_3 ||
                SUMMON_PICK_UP_2 == SUMMON_PICK_UP_3 
        )
        {
            Toast.makeText(getApplicationContext(), "Please specify a different username.", Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(getApplicationContext(), "Process complete, idiot.", Toast.LENGTH_SHORT).show();
        }

    }

}
4

1 に答える 1

1

アプリケーションのロジックに問題はありません。

ただし、Spinner の onItemSelected を設定するのを忘れていました。

spinner1.setOnItemSelectedListener( new response_1());
spinner2.setOnItemSelectedListener( new response_2());
spinner3.setOnItemSelectedListener( new response_3());
于 2012-07-31T03:38:32.460 に答える