Получение ошибки при изменении цвета фона

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

вот код

MainActivity.Ява

private TextView mtextview;
private EditText medittext;
private Button mbutton;

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

     mtextview = (TextView) findViewById(R.id.textView);
     medittext=(EditText)findViewById(R.id.editText);
    mbutton=(Button)findViewById(R.id.button);

    mbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name =medittext.getText().toString();
            startStory(name);
        }

        private void startStory(String name) {
            Intent intent = new Intent(MainActivity.this,AnotherActivity.class);
            intent.putExtra("name",name);
            startActivity(intent);
        }
    });


}

}

Другое дело.Ява

public class AnotherActivity extends AppCompatActivity {

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

    final RelativeLayout mrelativelayout = (RelativeLayout) findViewById(R.id.activity_main);
    Intent intent   = getIntent();
    String name = intent.getStringExtra("name");
    mrelativelayout.setBackgroundColor(Color.parseColor(name));

}

}

4 ответа

  1. Я предполагаю, что вы передаете имя цвета как «черный», «синий», «skyblue» и также другие имена цвета.

    Но надеюсь, вы знаете о значении строковых параметров, поддерживаемых методом parseColor ().

    Поддерживаемые форматы: #RRGGBB #AARRGGBB или один из следующих
    имена: ‘красный’, ‘синий’, ‘зеленый’, ‘черный’, ‘белый’, ‘серый’, ‘голубой’,
    ‘пурпурный’, ‘желтый’, ‘светло-серый’, ‘темно-серый’,’ серый’,’светло-серый’,
    ‘darkgrey’, ‘aqua’, ‘fuchsia’, ‘lime’, ‘maroon’, ‘navy’, ‘olive’,
    «фиолетовый», «серебряный», «бирюзовый».

  2. Изменение 1 :

    прежде всего AnotherActivityдобавьте ниже код внутри OnCreateметода.

    final RelativeLayout mrelativelayout = (RelativeLayout) findViewById(R.id.activity_main);

    потому что это дает вам NullPointerException.

    Изменение 2 :

    Вместо того, чтобы попробовать это

    Editable name = medittext.getText();
    

    используйте этот путь

     String name = medittext.getText().toString();
    

    и передайте эту строку AnotherActivityvia Intent.

  3. Убедитесь, что при вставке extra в intent он преобразуется в String.
    В настоящее время вы просто передаете редактируемый объект, а не строковый объект intent

    Образец:

    intent.putExtra("name",name.toString());
    

    или лучше изменить тип имени

    String name = medittext.getText().toString();
    
  4. Пожалуйста, опубликуйте activity_main.xml и activity_another.XML. Проблема в том, что в activity_main нет кнопки с android_id=»@+id/button».xml, вероятно, это в activity_another.XML.