Android: изменение текстового представления в другом действии - PullRequest
0 голосов
/ 19 июля 2011

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

textview properties

В отдельной операции, которая выглядит следующим образом:

Activity

Я пытался сделать это с пакетами, но я не могу заставить его работать.Вот как выглядит моя BookActivity:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.book_activity);

    //this is where the size property comes in
    Integer size = getIntent().getExtras().getInt("SGRkey");
    TextView test2 = (TextView) findViewById(R.id.booktext);
    test2.setTextSize(size);

    Spinner spinner = (Spinner) findViewById(R.id.kapitelspinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.kapitel_array, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());


}
    public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
          Toast.makeText(parent.getContext(),  
              parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();

          final String[] theporn = getResources().getStringArray(R.array.allkapitel);



          TextView text = (TextView) findViewById(R.id.booktext);
          text.setText(theporn[pos]); 


        }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }

(я выбираю строку главы в счетчике, и она отлично работает.)

А вот так выглядит моя SettingsActivity:

public class SettingsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings_view);

    Spinner SGRspinner = (Spinner) findViewById(R.id.schriftgroeße_spinner);
    ArrayAdapter<CharSequence> SGRadapter = ArrayAdapter.createFromResource(
            this, R.array.schriftgroesse_list, android.R.layout.simple_spinner_item);
    SGRadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    SGRspinner.setAdapter(SGRadapter); 

}


public class SGROnItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {

        Intent answer = new Intent();


      Toast.makeText(parent.getContext(),  
          parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();



      final String[] SGRstring = getResources().getStringArray(R.array.schriftgroesse_list);
      int SGRint = Integer.parseInt(SGRstring[pos]);

      Bundle size = new Bundle();
      size.putInt("SGRkey", SGRint);
      Intent nextActivity = new Intent(com.asm.reader.SettingsActivity.this, com.asm.reader.BookActivity.class);
      nextActivity.putExtras(size);

      com.asm.reader.SettingsActivity.this.startActivity(nextActivity);

    }

    public void onNothingSelected(AdapterView parent) {
      // Do nothing.
    }


}

Я получаю ошибку, когда пытаюсь это сделать.Все действия объявлены в манифесте.Я действительно не знаю, как дальше.Я довольно новичок в этом, так что извините, если это что-то простое, но любая помощь будет принята с благодарностью!: -)

1 Ответ

5 голосов
/ 19 июля 2011

Сделайте ваше текстовое представление статичным.То есть объявить его как общедоступную переменную статического класса.Затем вы можете вызвать его непосредственно из другого действия, например: firstActivity.myTextView.setText ("foo");

...