2016-03-13 4 views
0

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

Первый Класс Java:

public class MainActivity extends AppCompatActivity { 

private Button button; 
Context context; 
private EditText editText; 
String number = null; 

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

    context = this; 

    editText = (EditText) findViewById(R.id.editText); 
    button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (editText.getText().toString() != null) { 
       String value = "value"; 
       Intent secondscreenIntent = new Intent(context, SecondScreenJ.class); 
       secondscreenIntent.putExtra("Number", editText.getText().toString()); 
       startActivity(secondscreenIntent); 


      } 
     } 
    }); 
} 
} 

Второй Java Класс:

public class SecondScreenJ extends Activity { 

String number = null; 
private TextView textView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.secondscreen); 

    textView = (TextView) findViewById(R.id.textView); 

    Bundle extras = getIntent().getExtras(); 
    if (extras != null){ 
     number = extras.getString("number"); 
    } 

    textView.setText(number); 

} 


} 
+1

вы используете '«Номер»' как ключ для размещения и '«число»' для получения , Обратите внимание на столицу N в первом случае, а нижний регистр n в последнем – Blackbelt

+0

- да. Ваш ключ - «Номер», и вы пытаетесь получить «номер». Так что ваш код не работает – Saveen

+0

в тот момент, когда вы открываете 10 сообщений, на которые, возможно, знаете ответ, и пока вы добираетесь до одного из них и отвечаете на него, Еще 3 человека уже имеют: D – Vucko

ответ

3

вы кладете "Номер", как ключ, но, в вашей второй деятельности вы пытаетесь получить "номер" поэтому измените номер на номер и он будет работать. Его случай Чувствительный.

1

Остерегайтесь использования ключа для установки и получения дополнительных услуг. Они чувствительны к регистру. Замените "number" на "Number" во втором упражнении.

2

Не делайте так, чтобы ваши ключи были жестко закодированы. Просто объявить общественную статическую переменную в MainActivity и использовать его из SecondScreenJ

public class MainActivity extends AppCompatActivity { 

private Button button; 
Context context; 
private EditText editText; 
public static String NUMBER_KEY = "Number"; 
String number = null; 

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

context = this; 

editText = (EditText) findViewById(R.id.editText); 
button = (Button) findViewById(R.id.button); 
button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (editText.getText().toString() != null) { 
      String value = "value"; 
      Intent secondscreenIntent = new Intent(context, SecondScreenJ.class); 
      secondscreenIntent.putExtra(NUMBER_KEY , editText.getText().toString()); 
      startActivity(secondscreenIntent); 


     } 
    } 
}); 
} 
} 

Второй класс Java:

public class SecondScreenJ extends Activity { 

String number = null; 
private TextView textView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.secondscreen); 

textView = (TextView) findViewById(R.id.textView); 

Bundle extras = getIntent().getExtras(); 
if (extras != null){ 
    number = extras.getString(MainActivity.NUMBER_KEY); 
} 

textView.setText(number); 

} 


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