2014-07-24 150 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(); }