C# 单击时需要一个按钮来更改其文本
我正在尝试做一个简单的切换静音模式的应用程序。我拿到了《傻瓜书》,但到目前为止运气不好 我想做的是,当音频打开时,我想将按钮上的文本更改为关闭(使用字符串)。当按下时,我希望它变成另一个字符串。但我不能把这件事做好。到目前为止,我已经尝试了几种方法。有什么建议吗C# 单击时需要一个按钮来更改其文本,c#,java,android,xml,C#,Java,Android,Xml,我正在尝试做一个简单的切换静音模式的应用程序。我拿到了《傻瓜书》,但到目前为止运气不好 我想做的是,当音频打开时,我想将按钮上的文本更改为关闭(使用字符串)。当按下时,我希望它变成另一个字符串。但我不能把这件事做好。到目前为止,我已经尝试了几种方法。有什么建议吗 package com.example.silentmodetoggle; import android.os.Bundle; import android.graphics.drawable.Drawable; import an
package com.example.silentmodetoggle;
import android.os.Bundle;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class TSMMainActivity extends Activity {
//Instantiate an AudioManager to manage the ringer state
private AudioManager mAudioManager;
private boolean mPhoneIsSilent;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tsmmain);
mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
checkIfPhoneIsSilent();
setButtonClickListener();
//does this even work?
TextView textView=(TextView)findViewById(R.string.silence_phone);
}//onCreate
private void setButtonClickListener()
{
Button toggleButton = (Button) findViewById(R.id.toggleButton);
toggleButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (mPhoneIsSilent)
{ //set to normal mode
mAudioManager
.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mPhoneIsSilent = false;
}
else
{
mAudioManager
.setRingerMode(AudioManager.RINGER_MODE_SILENT);
mPhoneIsSilent = true;
}
//now toggle the UI again
toggleUi();
}
});
}
private void checkIfPhoneIsSilent()
{
int ringerMode = mAudioManager.getRingerMode();
if (ringerMode == AudioManager.RINGER_MODE_SILENT)
{
mPhoneIsSilent = true;
}
else
{
mPhoneIsSilent = false;
}
}
private void toggleUi()
{
ImageView imageView = (ImageView) findViewById(R.id.phone_icon);
Drawable newPhoneImage;
if (mPhoneIsSilent)
{
//i think i should put it here.
newPhoneImage = getResources().getDrawable(R.drawable.phone_silent);
}
else
{
newPhoneImage = getResources().getDrawable(R.drawable.phone_on);
}
imageView.setImageDrawable(newPhoneImage);
}
private void textView(int silencePhone) {
// TODO Auto-generated method stub
}
@Override
protected void onResume()
{
super.onResume();
checkIfPhoneIsSilent();
toggleUi();
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.tsmmain, menu);
return true;
}
}
试试这个:
@Override
public void onClick(View v)
{
if (mPhoneIsSilent)
{ //set to normal mode
mAudioManager
.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
mPhoneIsSilent = false;
((Button)v).setText("Turn On");
}
else
{
mAudioManager
.setRingerMode(AudioManager.RINGER_MODE_SILENT);
mPhoneIsSilent = true;
((Button)v).setText("Turn Off");
}
希望这有帮助:)在OnClickListener(视图v)中,参数v是您单击的按钮。因此,您可以调用方法setText(字符串s)并更改文本
它应该显式地转换为它的类型,因为v是一种通用的视图类型。我在书中从未看到过这一点,我必须记下这一点。