有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在文本视图数组中应用字符串值

在if(saveInstanceState!=null)中,我试图保存whowen()方法在文本视图中对文本所做的更改,以便在用户旋转手机时将其保存并恢复到旋转前的状态,但它显示了一个错误,即TextView中的getText()无法应用于(java.lang.string),我尝试添加。toString()但它不起作用

public class Multiplayer extends AppCompatActivity {
    private TextView mTicTacTextViews [] = new TextView[9];
    private Button mButtonX;
    private Button mButtonO;
    private Button mResult;
    private int mcheckAllButtonsClicked =0;
    private String TEXT_VIEW_VALUES_KEY = "VALUES OF TEXT VIEW'S";
    private String mTextviewValues [] = new String[9];
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(savedInstanceState != null)
        {
            String values[]=savedInstanceState.getStringArray(TEXT_VIEW_VALUES_KEY);
            for (int i=0;i<values.length;i++ ) {
                mTextviewValues[i]=values[i];
                mTicTacTextViews[i].getText(mTextviewValues[i]);
            }

        }

        setContentView(R.layout.activity_tic_tac);

        mTicTacTextViews[0] = (TextView) findViewById(R.id.tic_tac_one);
        mTicTacTextViews[0].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

               ifPressed_XButton(mTicTacTextViews[0]);
                ifPressed_OButton(mTicTacTextViews[0]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[1] = (TextView) findViewById(R.id.tic_tac_two);
        mTicTacTextViews[1].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[1]);
                ifPressed_OButton(mTicTacTextViews[1]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[2] = (TextView) findViewById(R.id.tic_tac_three);
        mTicTacTextViews[2].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[2]);
                ifPressed_OButton(mTicTacTextViews[2]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[3] = (TextView) findViewById(R.id.tic_tac_four);
        mTicTacTextViews[3].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[3]);
                ifPressed_OButton(mTicTacTextViews[3]);
                mcheckAllButtonsClicked+=1;
            }
        });
        mTicTacTextViews[4] = (TextView) findViewById(R.id.tic_tac_five);
        mTicTacTextViews[4].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[4]);
                ifPressed_OButton(mTicTacTextViews[4]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[5] = (TextView) findViewById(R.id.tic_tac_six);
        mTicTacTextViews[5].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[5]);
                ifPressed_OButton(mTicTacTextViews[5]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[6] = (TextView) findViewById(R.id.tic_tac_seven);
        mTicTacTextViews[6].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[6]);
                ifPressed_OButton(mTicTacTextViews[6]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[7] = (TextView) findViewById(R.id.tic_tac_eight);
        mTicTacTextViews[7].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[7]);
                ifPressed_OButton(mTicTacTextViews[7]);
                mcheckAllButtonsClicked+=1;
            }
        });

        mTicTacTextViews[8] = (TextView) findViewById(R.id.tic_tac_nine);
        mTicTacTextViews[8].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ifPressed_XButton(mTicTacTextViews[8]);
                ifPressed_OButton(mTicTacTextViews[8]);
                mcheckAllButtonsClicked+=1;

            }
        });



        mButtonX = (Button) findViewById(R.id.x_button);
        mButtonX.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mUserPressed_XButton =true;
            }
        });

        mButtonO = (Button) findViewById(R.id.o_button);
        mButtonO.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mUserPressed_OButton =true;

            }
        });

        mTextviewValues [0]=mTicTacTextViews[0].getText().toString();
        mTextviewValues [1]=mTicTacTextViews[1].getText().toString();
        mTextviewValues [2]=mTicTacTextViews[2].getText().toString();
        mTextviewValues [3]=mTicTacTextViews[3].getText().toString();
        mTextviewValues [4]=mTicTacTextViews[4].getText().toString();
        mTextviewValues [5]=mTicTacTextViews[5].getText().toString();
        mTextviewValues [6]=mTicTacTextViews[6].getText().toString();
        mTextviewValues [7]=mTicTacTextViews[7].getText().toString();
        mTextviewValues [8]=mTicTacTextViews[8].getText().toString();

        mResult = (Button) findViewById(R.id.result_button);
        mResult.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                whoWon();
            }
        });
    }



    private void whoWon ()
    {
        mTextviewValues [0]=mTicTacTextViews[0].getText().toString();
        mTextviewValues [1]=mTicTacTextViews[1].getText().toString();
        mTextviewValues [2]=mTicTacTextViews[2].getText().toString();
        mTextviewValues [3]=mTicTacTextViews[3].getText().toString();
        mTextviewValues [4]=mTicTacTextViews[4].getText().toString();
        mTextviewValues [5]=mTicTacTextViews[5].getText().toString();
        mTextviewValues [6]=mTicTacTextViews[6].getText().toString();
        mTextviewValues [7]=mTicTacTextViews[7].getText().toString();
        mTextviewValues [8]=mTicTacTextViews[8].getText().toString();

        if(mTextviewValues[0].equals(mTextviewValues[1]) & mTextviewValues[1].equals(mTextviewValues[2]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else if (mTextviewValues[1].equals(mTextviewValues[4]) & mTextviewValues[4].equals(mTextviewValues[8]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else if (mTextviewValues[0].equals(mTextviewValues[3]) & mTextviewValues[3].equals(mTextviewValues[6]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else if (mTextviewValues[1].equals(mTextviewValues[4]) & mTextviewValues[4].equals(mTextviewValues[7]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else if (mTextviewValues[2].equals(mTextviewValues[5]) & mTextviewValues[5].equals(mTextviewValues[8]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else if (mTextviewValues[2].equals(mTextviewValues[4]) & mTextviewValues[4].equals(mTextviewValues[6]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }

        else if (mTextviewValues[2].equals(mTextviewValues[4]) & mTextviewValues[4].equals(mTextviewValues[6]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else if (mTextviewValues[6].equals(mTextviewValues[7]) & mTextviewValues[7].equals(mTextviewValues[8]))
        {
            Toast.makeText(this,"Someone won",Toast.LENGTH_SHORT).show();
        }
        else Log.i("error" , "whowon didn't work");

    }
    @Override
    protected void  onSaveInstanceState(Bundle bundle)
    {
        super.onSaveInstanceState(bundle);
        bundle.putStringArray(TEXT_VIEW_VALUES_KEY,mTextviewValues);

    }
}

共 (1) 个答案

  1. # 1 楼答案

    getText()不接受参数mTicTacTextViews[i].getText()返回视图中的文本。你想在视图中设置文本吗?如果是这样,你想要的是setText(CharSequence),而不是CharSequence getText()