2014-07-24 114 views
0

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

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); 
            } 
    }); 
} 

任何帮助到哪里/我在做什么错将大大赞赏

+1

什么是'lines.pickline'? – Apoorv

回答

0

您需要声明的onClick()在OnClickListener {}方法外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"); 
            } 
    }); 
} 
} 
+0

这会改变什么?它会在内部或外部找到相同的观点。 – Apoorv

+0

秒@Apoorv – nobalG

+0

@Apoorv ...可笑的是,如果你在OnClickView()中编写它,那么它会尝试实例化一个* new *文本视图,每次你点击*按钮名称按钮并设置文本行.pickline,希望你已经设法添加一些切换,以便下次单击按钮时文本发生更改。 – Kailas

0

正如其他答案的评论,它可能是更安全的声明你的TextView全球或至少clickListener外...

...但你似乎缺少真实的东西是某种类型的逻辑来决定如何把随机文本中......

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]); 
     } 
    }); 
} 

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

0

如果按下按钮以设置所需的文本,则可以使用if中的条件点击一个函数。 onClick() if(button.isPressed()) { setText(); }