0

Жаль об этом ребята. Это должно быть как третий вопрос, который я должен был спросить об этом проекте в одиночку. = (Как мне настроить настройки Android?

Что я хочу быть в состоянии сделать это переключать видимость радио-кнопки, используя флажок в деятельности предпочтений.

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

Вот моя активность с радиокнопок

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.RadioButton; 
import com.medialets.android.analytics.MMAnalyticsManager; 

public class Temperature extends Activity { 
MMAnalyticsManager mManager; 
private EditText text; 

public void onStart(Bundle savedInstanceState){ 
    super.onStart(); 
    getPrefs(); 
} 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.temperature); 
     text = (EditText)findViewById(R.id.EditText01); 

mManager = MMAnalyticsManager.sharedInstance(this); 
mManager.start("codeHere", "1.0", 
    false); 
} 

@Override 
public void onPause() { 
super.onPause(); 

mManager.pause(); 
} 

@Override 
public void onResume() { 
super.onResume(); 

mManager.resume(); 
} 

@Override 
public void onDestroy() { 
super.onDestroy(); 
mManager.stop(); 
} 






    public void myClickHandler(View view){ 
     switch (view.getId()) { 
     case R.id.Button01: 
      RadioButton celsiustokelvinButton = (RadioButton) findViewById (R.id.RadioButton05); 
      RadioButton celsiustofarenheitButton = (RadioButton) findViewById(R.id.RadioButton01); 
      RadioButton farenheittocelsiusButton = (RadioButton) findViewById(R.id.RadioButton02); 
      RadioButton farenheittokelvinButton = (RadioButton) findViewById(R.id.RadioButton06); 
      RadioButton kelvintocelsiusButton = (RadioButton) findViewById (R.id.RadioButton03); 
      RadioButton kelvintofarenheitButton=(RadioButton) findViewById (R.id.RadioButton04); 
      float inputValue = Float.parseFloat(text.getText().toString()); 

       if (celsiustofarenheitButton.isChecked()) { 
       text.setText(String 
         .valueOf(convertCelsiusToFarenheit(inputValue))); 
      } if (farenheittocelsiusButton.isChecked()) { 
       text.setText(String 
         .valueOf(convertFarenheitToCelsius(inputValue))); 
      } if (celsiustokelvinButton.isChecked()) { 
       text.setText(String 
         .valueOf(convertCelsiusToKelvin(inputValue))); 
      } if (farenheittokelvinButton.isChecked()) { 
       text.setText(String 
         .valueOf(convertFarenheitToKelvin(inputValue))); 
      } if (kelvintocelsiusButton.isChecked()) { 
       text.setText(String 
         .valueOf(convertKelvinToCelsius(inputValue))); 
      } if (kelvintofarenheitButton.isChecked()) { 
       text.setText(String 
         .valueOf(convertKelvinToFarenheit(inputValue))); 
      } 
      break; 


     }} 

    private float convertFarenheitToCelsius(float fahrenheit){ 
     return ((fahrenheit - 32) * 5/9); 
    } 
    private float convertCelsiusToFarenheit(float celsius){ 
     return ((celsius * 9)/5) + 32;  
    } 
    private double convertCelsiusToKelvin(float celsius){ 
     return celsius + 273.15; 
    } 
    private double convertFarenheitToKelvin(float farenheit){ 
     return ((farenheit-32)/(1.8)); 
    } 
    private double convertKelvinToCelsius(float kelvin){ 
     return kelvin-273.1; 
    } 
    private double convertKelvinToFarenheit(float kelvin){ 
     return kelvin*1.8-459.67; 
    } 
    boolean CheckboxPreference; 


    private void getPrefs() { 
      // Get the xml/preferences.xml preferences 
      SharedPreferences prefs = PreferenceManager 
          .getDefaultSharedPreferences(getBaseContext()); 
      CheckboxPreference = prefs.getBoolean("checkboxPref", true); 
} 

} 

А вот мои предпочтения активность

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.Preference; 
import android.preference.PreferenceActivity; 
import android.preference.Preference.OnPreferenceClickListener; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.RadioButton; 
import android.widget.Toast; 
import android.widget.CompoundButton.OnCheckedChangeListener; 


public class Preferences extends PreferenceActivity { 

private RadioButton btn01; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 
    btn01 = (RadioButton)findViewById(R.id.RadioButton01); 
    Preference customPref = (Preference) findPreference("customPref"); 



    customPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){ 

     public boolean onPreferenceClick(Preference preference) { 
      Toast.makeText(getBaseContext(),"The Custom Preference Has Been  Clicked",Toast.LENGTH_LONG).show(); 
      SharedPreferences customSharedPreference =  getSharedPreferences("myCutomSharedPrefs", Activity.MODE_PRIVATE); 
      SharedPreferences.Editor editor = customSharedPreference.edit(); 
      editor.putString("myCustomPref","The preference has been clicked"); 
      editor.commit(); 

      CheckBox(); 

      return true; 




     } 
     private void CheckBox() { 
      final CheckBox ThisCheckBox = (CheckBox) findViewById (R.id.checkboxPref); 
      ThisCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
       @Override 
       public void onCheckedChanged(CompoundButton compoundButton,boolean  test) { 
        if (ThisCheckBox.isChecked()){ 
         btn01.setVisibility(View.VISIBLE); 
        } else { 
         btn01.setVisibility(View.GONE); 
        } 
       } 
      }); 
     }; 
    }); 

}} 

К сожалению есть другие вещи там, а такие, как аналитики заглушка в

Кто-нибудь есть какие-либо идеи, почему это просто не работает

(Просто примечание стороны. При просмотре логарифма, щелкнув по флажку, не было возвращено никаких результатов)

EDIT: ОК, я только что внес свой код в соответствие с моим предложением, но я боюсь, что предпочтения все равно ничего не влияют. У кого-нибудь есть идеи? = (

+0

Говоря о побочных нот, когда вы говорите, «Глядя на LogCat, нажав флажок не дал результатов)» , Я предполагаю, что вы просматриваете его под Eclipse. Ты не должен. Я предпочитаю просматривать его с помощью «adb logcat -v time», чтобы получить более полное представление о том, что происходит, затем фильтровать или сохранять файл и просматривать с помощью Emacs, чтобы убедиться, что я вижу все, что может быть актуальным. Возможно, вы захотите попробовать, чтобы узнать, если вы получите более информативный вывод logcat. BTW: вам понадобится больше запросов Log.d(), Log.w() и т. Д., Посыпанных в коде, который вы показываете выше, чтобы понять, почему он не работает. –

ответ

0

Это не работает, потому что для visiblity значения вы должны использовать это (reference):

0 = VISIBLE 
4 = INVISIBLE 
8 = GONE 
+1

Да, и для тех, кому вы, вероятно, должны просто использовать константы, чтобы сделать код более понятным. View.VISIBLE, View.INVISIBLE и т. Д. –

+0

Большое спасибо, но это похоже только на часть ответа, поскольку настройки по-прежнему не влияют на переключатель. – Jack

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