【问题标题】:onClick changes to user input display and new textViewonClick 更改用户输入显示和新的 textView
【发布时间】:2015-02-02 04:52:51
【问题描述】:

onClick 我想让 question2 替换 question1——而不是同时显示两个问题——并让用户对第二个问题的输入进入它的适当 textView。当我尝试循环数组时出现错误:“questionNumber++”。

package com.example.greg;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class menu extends Activity {

Button   mButton;
EditText mEdit;

@Override
protected void  onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mButton = (Button)findViewById(R.id.button);
    mEdit   = (EditText)findViewById(R.id.userAnswereditText);

    final TextView [] myTexts = new TextView[2];
    myTexts[0]=(TextView)findViewById(R.id.varATextView);
    myTexts[1]=(TextView)findViewById(R.id.varBTextView);

    final int questionNumber = 0;
    mButton.setOnClickListener(
    new View.OnClickListener()
       {
            public void onClick(View view)
            {                
                myTexts[questionNumber].setText(mEdit.getText().toString());
                mEdit.setText(null);
                questionNumber++;      
            }
        }); 
    }

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
}
}

【问题讨论】:

  • 你用final初始化questionNumber,它不能改变

标签: android arrays onclick android-edittext textview


【解决方案1】:
public class menu extends Activity {

 Button   mButton;
 EditText mEdit;
 int questionNumber = 0;

@Override
protected void  onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mButton = (Button)findViewById(R.id.button);
mEdit   = (EditText)findViewById(R.id.userAnswereditText);

final TextView [] myTexts = new TextView[2];
myTexts[0]=(TextView)findViewById(R.id.varATextView);
myTexts[1]=(TextView)findViewById(R.id.varBTextView);


mButton.setOnClickListener(
new View.OnClickListener()
   {
        public void onClick(View view)
        {

            myTexts[questionNumber].setText(mEdit.getText().toString());
            mEdit.setText(null);
            myTexts[0].setvisibility(View.GONE); // use this to hide
            myTexts[1].setvisibility(View.VISIBLE); // use this to show
            questionNumber++;

        }
    });

    }

@Override
protected void onPause() {
  // TODO Auto-generated method stub
  super.onPause();
}

只需用 questionNumber 删除单词 final,我所做的是在类级别对其进行初始化,这样我就可以在 onclick 方法中访问它而无需声明它是 final。希望对您有所帮助。

【讨论】:

  • 变量 textViews 现在工作得很好,但我的问题 textViews 不会更改为 onClick 的下一个问题。我不确定实现出现 onClick 的新问题效果的方法是否与可见性有关并将问题 textViews 直接放在彼此之上?我非常感谢您对此的回答。
  • 使用 .setvisibility(View.GONE);隐藏和 .setvisibility(View.VISIBLE);显示
  • 有帮助吗?如果有任何其他问题,请随时询问
  • 我很高兴它有帮助,祝你有美好的一天
【解决方案2】:

你声明 textview[] "final" ...因此在索引 0 上你的值不会改变.. 所以删除它.. 也从 int 中删除 "final"

public class menu extends Activity {


Button   mButton;
EditText mEdit;

@Override
protected void  onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mButton = (Button)findViewById(R.id.button);
mEdit   = (EditText)findViewById(R.id.userAnswereditText);

TextView [] myTexts = new TextView[2];
myTexts[0]=(TextView)findViewById(R.id.varATextView);
myTexts[1]=(TextView)findViewById(R.id.varBTextView);

int questionNumber = 0;
mButton.setOnClickListener(
new View.OnClickListener()
   {
        public void onClick(View view)
        {                
            myTexts[questionNumber].setText(mEdit.getText().toString());
            mEdit.setText(null);
            questionNumber++;      
        }
    }); 
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
}

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多