2013-09-30 6 views
0

Я пытаюсь сделать простое приложение режима молчания. Я получил книгу для чайников и пока не повезло.нужна кнопка, чтобы изменить текст при нажатии

Что я хочу сделать, когда звук включен. Я хочу изменить свой текст на моей кнопке, чтобы отключить (используя строку). и при нажатии я хочу, чтобы он изменился на другую строку. Но я не могу понять это. До сих пор я пробовал несколько способов. Какие-либо предложения ?

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

} 

ответ

1

Попробуйте это:

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

Надеется, что это помогает :)

+0

большое спасибо помощи. –

+0

Я никогда не видел этого в книге, мне нужно будет это отметить. –

0

В OnClickListener (View V) аргумент v кнопка вы щелкнули. Поэтому вы можете вызвать метод setText (String s) и изменить текст.

Он должен быть явно передан его типу, поскольку v является общим типом представления.

Смежные вопросы