2016-03-11 11 views
0

Я создал приложение в Android Studio; он работает нормально, но тост не отображается должным образом.Toast не работает должным образом

Любая помощь приветствуется.

Вот мой код:

MainActivity.java

public class MainActivity extends Activity { 

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

    Button btn = (Button) findViewById(R.id.btn); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent intent = new Intent(MainActivity.this, NextActivity.class); 

      startActivity(intent); 
     } 
    }); 
} 
} 

activity_main.xml

<Button 
    android:id="@+id/btn" 
    android:text="click" 
    android:layout_gravity="center_vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

NextActivity.java

public class NextActivity extends Activity { 

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

    final EditText fName= (EditText) findViewById(R.id.txt); 
    final EditText lName= (EditText) findViewById(R.id.txt1); 
    Button btn1 = (Button) findViewById(R.id.btn1); 

    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Toast.makeText(getApplicationContext(),"Hi there!, "+fName+ " " + " "+ lName, Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

} 

activity.next.xml

<EditText 
    android:id="@+id/txt" 
    android:hint="Enter your first name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:layout_marginTop="110dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<EditText 
    android:id="@+id/txt1" 
    android:hint="Enter your last name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

<Button 
    android:id="@+id/btn1" 
    android:text="Submit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/txt1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="69dp" /> 
+2

Пожалуйста, объясните, в деталях, что такое « Тост не отображается правильно "означает. – CommonsWare

+0

Когда я вводим имя и фамилию во втором действии и нажимаю кнопку отправки, то, что показано для тоста, является текст «Привет!». а остальное - куча знаков и букв. Детали для «fName» и «lName» не отображаются. – Ehsan

+0

fName и iName являются объектами EditText. Если вы хотите получить строку, вы должны сделать 'fName.getText(). ToString()' – horro

ответ

3

Не забудьте TextView.getText()

NextActivity.java

public class NextActivity extends Activity { 

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

    final EditText fName= (EditText) findViewById(R.id.txt); 
    final EditText lName= (EditText) findViewById(R.id.txt1); 
    Button btn1 = (Button) findViewById(R.id.btn1); 

    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Toast.makeText(getApplicationContext(),"Hi there!, "+fName.getText().toString()+ " " + " "+ lName.getText().toString(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

} 
+1

Тост работает отлично сейчас, спасибо большое! – Ehsan

1

Я предполагаю, что вы хотите добавить текстовое содержание ваших EditText S - последовательность букв и цифры, которые вы видите, являются результатом по умолчанию ObjecttoString():

public String toString()

Добавлено в API level 1 Возвращает строку, содержащую краткое, человеко-читаемое описание этого объекта. Подклассам рекомендуется использовать , чтобы переопределить этот метод и предоставить реализацию, которая принимает в учетную запись типа и данных объекта. Реализация по умолчанию эквивалентно следующему выражению:

getClass().getName() + '@' + Integer.toHexString(hashCode())

Если вы хотите, чтобы захватить содержание ваших EditText виджетов, вы бы вместо editText.getText().toString()

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