0

mAssistUpdateButton と mReadAgainButton で onclick リスナーを使用しようとしていますが、どちらも表示されるテキストを変更していないようです。

私が間違ったことをしたかもしれないという提案は大歓迎です。

ソース:

public void onClick(View v) {

        if (v == mAssistUpdateButton) {

        // Update button for ICS and up is selected
        // Get the TextView in the Assist Update UI

        TextView tv = (TextView) findViewById(R.id.apn_app_text_cta2);
        String text = "";
        CharSequence styledText = text;
        switch(v.getId()) {

        //case R.id.read_again_btn {

        case 0:
            // Retrieve the instruction string resource corresponding the
            // 2nd set of instructions
            text = String.format(getString(R.string.apn_app_text_instr),
                    TotalSteps);
            styledText = Html.fromHtml(text);
            // Update the TextView with the correct set of instructions
            tv.setText(styledText);
            // Increment instruction number so the correct instructions
            // string resource can be retrieve the next time the update
            // button is pressed
            mInstructionNumber++;
            break;
        case 1:
            text = getString(R.string.apn_app_text_instr2);
            styledText = Html.fromHtml(text);
            tv.setText(styledText);
            // Increment instruction number so the correct instructions
            // string resource can be retrieve the next time the update
            // button is pressed
            mInstructionNumber++;
            break;
        case 2:
            // Final set of instructions-Change to the corresponding layout

            setContentView(R.layout.assist_instructions);
            String assistUpdateInstr = String.format(
                    getString(R.string.apn_app_text_instr3), TotalSteps);
            styledText = Html.fromHtml(assistUpdateInstr);
            TextView assistInstrText = (TextView) findViewById(R.id.updated_text);
            assistInstrText.setText(styledText);
            mAssistInstrButton = (Button) findViewById(R.id.assist_instr_btn);
            mAssistInstrButton.setOnClickListener(this);
            mReadAgainButton = (TextView) findViewById(R.id.read_again_btn);
            mReadAgainButton.setOnClickListener(this);
        }// end switch

        }// end if
        else if (v == mAssistInstrButton) {
        // "LET'S DO THIS" Button in final instructions screen for ICS and
        // up is selected
        Values = getValues();
        startActivity(new Intent(Settings.ACTION_APN_SETTINGS));
        try {
            showNotification();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finish();
        }// end if
        else if (v == mAssistInstrButton) {
        startActivity(new Intent(Settings.ACTION_APN_SETTINGS));
        try {
            showNotification();
        } catch (SAXException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (ParserConfigurationException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        try {
            showNotification();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finish();

        }// end if
        else if (v == mReadAgainButton) {
        // go back to set of instructions if read again is selected

        TextView tv = (TextView) findViewById(R.id.apn_app_text_cta2);
        String text = "";
        CharSequence styledText = text;

        switch (mInstructionNumber) {

        case 0:
            // Retrieve the instruction string resource corresponding the
            // 2nd set of instructions
            text = String.format(getString(R.string.apn_app_text_instr),
                    TotalSteps);
            styledText = Html.fromHtml(text);
            // Update the TextView with the correct set of instructions
            tv.setText(styledText);
            // Increment instruction number so the correct instructions
            // string resource can be retrieve the next time the update
            // button is pressed
            mInstructionNumber++;
            break;
        case 1:
            text = getString(R.string.apn_app_text_instr2);
            styledText = Html.fromHtml(text);
            tv.setText(styledText);
            // Increment instruction number so the correct instructions
            // string resource can be retrieve the next time the update
            // button is pressed
            mInstructionNumber++;
            break;
        case 2:
            // Final set of instructions-Change to the corresponding layout

            setContentView(R.layout.assist_instructions);
            String assistUpdateInstr = String.format(
                    getString(R.string.apn_app_text_instr3), TotalSteps);
            styledText = Html.fromHtml(assistUpdateInstr);
            TextView assistInstrText = (TextView) findViewById(R.id.updated_text);
            assistInstrText.setText(styledText);
            mAssistInstrButton = (Button) findViewById(R.id.assist_instr_btn);
            mAssistInstrButton.setOnClickListener(this);
            mReadAgainButton = (TextView) findViewById(R.id.read_again_btn);
            mReadAgainButton.setOnClickListener(this);
            break;
             }// end switch
           }
        }
4

1 に答える 1

2

v.getId()に渡されたid( View)の を返します。vonClick()

が 0、1、2 などかどうかidを確認しています...View

case 0:

ステートメントcaseは の である必要がありidますView

case R.id.mAssistUpdateButton:
    // do your work if that button was clicked

あなたが何を期待しているのかわかりませんが、ここをチェックしてください

編集

何をしようとしているのかを説明したので、カウンターであるメンバー変数を作成し、それをint. 次に、caseステートメントをそのまま保持できますが、に変更しswitchます

switch (counterVariable){

私が投稿したリンクを読んでステートメントを理解してください。ただし、実行するコードのブロックを決定するためswitchに、変数をオプションと比較しswitchます。case

を入力するたびに、カウンター変数を 1 ずつ増やしたいと思うことは明らかですonClick()

于 2013-09-26T19:16:11.110 に答える