2017-04-03 21 views
-1

當我試圖把它只能使用一次按鈕...Android Studio中的OnClick只是工作一次

public class MainActivity extends AppCompatActivity { 
TextView txt; 
Button btn; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txt = (TextView) findViewById(R.id.mytext); 
    btn = (Button) findViewById(R.id.button1); 

    btn.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 

      txt.setText("" +1); 

     } 
    }); 

我該怎麼解決呢?非常感謝

回答

2

我猜你想要做的是這樣的:

public class MainActivity extends AppCompatActivity { 
TextView txt; 
Button btn; 
private int mCounter = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txt = (TextView) findViewById(R.id.mytext); 
    btn = (Button) findViewById(R.id.button1); 

    btn.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v){ 

      txt.setText("" + mcounter++); 

     } 
    }); 

現在,當你點擊按鈕上的文本將是0的第一次,然後每按一次按鈕計數。代碼的問題在於,它不是算術運算,因此每次都會調用onclick方法,但每次都有相同的文本。

1

它可以正常工作。每個你的點擊設置相同的文本,所以你看不到任何改變。

0

你的代碼似乎沒問題。

您可以添加調試log或顯示toast消息以瞭解button點擊status。如果你想在TextView顯示增量值

btn.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 

     txt.setText("" + 1); 

     // Log 
     Log.d("TEST", "Button clicked!"); 

     // Toast 
     Toast.makeText(getApplicationContext(), "Button clicked!", Toast.LENGTH_SHORT).show(); 

    } 
}); 

試試這個。試試這個:

// Initial value 
final int count = 1; 

btn.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 

     txt.setText(String.valueOf(count)); 

     // Increment 
     count++ 
    } 
}); 

希望這會有所幫助。

+0

沒有理由。只有他的法律行爲是錯誤的。 –