Android按钮问题

时间:2014-07-24 06:51:11

标签: android

所以我试图在Android中编写这个简单的程序,在按钮上单击更改显示的文本。只有1个按钮,会从数组中拉出一个字符串。

IE 
text ="don't push button"
user *pushes Button*
text= "I Said Don't Push Button"
etc.

我在这里搜索过,还有大约一百万个其他资源用于正确实施,并且已经跟踪它们并且仍然没有得到任何结果。每次我点击按钮它什么都不做。 使用我的String[],我有一个被指定为随机的int,因此它并不总是与第一个String完全相同

public class MainActivity extends ActionBarActivity implements OnClickListener {    
@Override
    protected void onCreate(Bundle savedInstanceState) {



super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final Button button = (Button) findViewById(R.id.btnnew);
    button.setOnClickListener(new View.OnClickListener() {


        public void onClick(View v) {
            TextView rtext = (TextView) findViewById(R.id.textView1);
            rtext.setText(lines.pickline);
                                    }
    });
}

非常感谢任何关于我在哪里/我做错了什么的帮助

3 个答案:

答案 0 :(得分:0)

您需要在OnClickListener {}中的onClick()方法之外声明TextView,请尝试以下操作:

public class MainActivity extends ActionBarActivity implements OnClickListener {

boolean buttonClickedOnce;
@Override protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView rtext = (TextView) findViewById(R.id.textView1);
    rtext.setText("don't push button");

    final Button button = (Button) findViewById(R.id.btnnew);
    button.setOnClickListener(new View.OnClickListener() {


        public void onClick(View v) {
            buttonClickedOnce = true;
            rtext.setText("I Said Don't Push Button");
                                    }
    });
}
}

答案 1 :(得分:0)

与其他答案的评论一样,在全局或至少在clickListener之外声明TextView可能更安全......

...但你似乎缺少的真实东西是某种类型的逻辑来确定如何将随机文本放入...

public class MainActivity extends ActionBarActivity implements OnClickListener {
@Override protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Instantiate the Text View
    TextView text = (TextView) findViewById(R.id.textView1);

    // Set Our Array Of Strings
    String[] lines = new String[5]; 
    lines[0] = "john";
    lines[1] = "paul";
    lines[2] = "george";
    lines[3] = "ringo";
    lines[4] = "the other guy";

    // Instantiate The Button
    final Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            // Generate Random Number
            Random random = new Random();
            int randomNum = random.nextInt(lines.length);

            // Set the Text from the appropriate line
            text.setText(lines[randomNum]);
        }
    });
}

希望有所帮助,并回答这个问题!

答案 2 :(得分:0)

如果按下按钮以设置所需文本,则可以使用if条件在内部使用函数。    onClick() if(button.isPressed()) { setText(); }