2017-02-07 20 views
0

Я очень мало знаю о программировании. Я загрузил Android Studio и начал заниматься этим. Я попытался сделать приложение, которое они использовали в учебнике, и это сработало. Однако я попытался добавить к нему больше функций, и до сих пор не удалось. Извините меня, если вы видите ненужный барахло на моем коде, я просто пробую все сначала, и я чувствую себя немного ошибочным.Как сохранить текущее состояние коммутаторов в Android Studio?

В любом случае, на вопрос. У меня есть Switch (id: toggle_text) с действием OnClick (change_font). Когда переключатель переключается, он должен изменить размер шрифта другой активности с помощью намерения1. В настоящее время он не только не отправляет переменную размера шрифта (переменная сохраняет значение по умолчанию, которое вы положили на getIntExtra), но теперь, когда я попытался добавить способность сохранять текущее состояние, он просто показывает ошибки. Вот код:

package com.example.myfirstapp; 

import android.content.Intent; 
import android.content.SharedPreferences; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.CompoundButton; 
import android.widget.CompoundButton.OnCheckedChangeListener; 
import android.widget.ToggleButton; 
import android.widget.TextView; 
import static com.example.myfirstapp.R.id.toggle_text; 
import static com.example.myfirstapp.R.string.change_font; 


public class ShowAnOption extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_show_an_option); 
    SharedPreferences sharedPrefs = getSharedPreferences("com.example.xyz", MODE_PRIVATE); 
    toggle.setChecked(sharedPrefs.getBoolean("NameOfThingToSave", true)); 
} 

public void change_font(View v) { 

    int fssize; 

    if (toggle.isChecked()) 
    { 
     SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit(); 
     editor.putBoolean("NameOfThingToSave", true); 
     editor.commit(); 
     fssize=20; 
    } 
    else 
    { 
     SharedPreferences.Editor editor = getSharedPreferences("com.example.xyz", MODE_PRIVATE).edit(); 
     editor.putBoolean("NameOfThingToSave", false); 
     editor.commit(); 
     fssize=40; 
    } 

    Intent intent1 = new Intent (getBaseContext(), DisplayMessageActivity.class); 
    intent1.putExtra("Font_Size", fssize); 

} 

} 

Он говорит, что «не может разрешить символ переключения» на toggle.setChecked() и если заявление. Что я могу сделать, чтобы исправить это? Кроме того, почему он не отправляется на другую деятельность? Вот код другой деятельности:

package com.example.myfirstapp; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.ViewGroup; 
import android.widget.TextView; 

public class DisplayMessageActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_message); 

    Intent intent = getIntent(); 
    Intent intent1 = getIntent(); 
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 
    int Font_Size = intent1.getIntExtra("Font_Size",50); 
    TextView textView = new TextView(this); 
    textView.setTextSize(Font_Size); 
    textView.setText(message); 

    ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message); 
    layout.addView(textView); 
} 
} 

Спасибо и простите за долгое чтение. Если есть что-то еще, что нужно знать, дайте мне знать, и я с удовольствием покажу.

ответ

0

Мы не пытались изменить размер шрифта, но вот как использовать виджет переключателя. Наш дизайн два вида деятельности MainActivity и SwitchActivity мы изменили CheckBox от бесконтрольно до проверяется переключатель на коде MainActivity ниже

setOnCheckedChangeListener(); 
private void setOnCheckedChangeListener() { 
    swAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if (isChecked) { 
       Toast.makeText(MainActivity.this, "Switch On", Toast.LENGTH_SHORT).show(); 
       Intent intentSP = new Intent(MainActivity.this, SwitchActivity.class); 
       Bundle extras = new Bundle(); 
       extras.putString("FONT","true"); 
       intentSP.putExtras(extras); 
       startActivity(intentSP); 
      } else { 
       Toast.makeText(MainActivity.this, "Switch Off", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
} 

Сейчас в SwitchAcvity мы фиксируем значение от намерения и огонь метод doWhat ()

 Intent intentSP = getIntent(); 
    Bundle bundle = intentSP.getExtras(); 
    tORf = bundle.getString("FONT"); 
    doWhat(null); 

А вот метод doWhat

public void doWhat(View view){ 
    if(tORf.equals("true")){ 
     chkBoxOne.setChecked(true); 
    }else { 
Toast.makeText(SwitchActivity.this, "NOT TRUE", Toast.LENGTH_LONG).show(); 
    } 
}