2013-09-05 2 views
-3

Я создал CalendarView, что всякий раз, когда вы выбираете дату, открывается новая активность. В этом новом действии я поставил кнопку и TextView, и я хочу, чтобы TextView отображал строку. Дело в том, что, когда я выбираю дату, отображается сообщение, в котором говорится: «К сожалению,« имя_проекта »остановлено!».Android: TextView делает app stop

здесь код нового вида деятельности в:

public class CalendarDate extends Activity { 

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

    Bundle extras = getIntent().getExtras(); 
    String dday = extras.getString("currentday"); 
    String dmonth =extras.getString("currentmonth"); 
    String dyear = extras.getString("currentyear"); 
    ActionBar ab = getActionBar(); 
    ab.setTitle(dday+"/"+dmonth+"/"+dyear); 



    Bundle extraz =getIntent().getExtras(); 
    String display = extras.getString("EXTRA_MESSAGE"); 


    LinearLayout layout=(LinearLayout) this.findViewById(R.id.Layout); 
    EditText  editText=(EditText) this.findViewById(R.id.textView); 
    Button  button=(Button) this.findViewById(R.id.btnAdd); 

     LayoutParams lparams = new LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
       TextView tv=new TextView(this); 
       tv.setLayoutParams(lparams); 
       tv.setText(display); 
       layout.addView(tv); 


} 


public void sceduleEdit(View view) { 


    Intent intent = new Intent(this, EditSc.class); 
    startActivity(intent); 

} 

}

и вот XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="CalendarDate" 
android:orientation="vertical" 
android:id="@+id/Layout"> 

    <TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Large Text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<Button 
    android:id="@+id/btnAdd" 
    android:layout_width="100dip" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="34dp" 
    android:layout_marginLeft="88dp" 
    android:onClick="sceduleEdit" /> 

если удалить следующий код, то деятельность открывается как он должен был

LinearLayout layout=(LinearLayout) this.findViewById(R.id.Layout); 
EditText  editText=(EditText) this.findViewById(R.id.textView); 
Button  button=(Button) this.findViewById(R.id.btnAdd); 

    LayoutParams lparams = new LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      TextView tv=new TextView(this); 
      tv.setLayoutParams(lparams); 
      tv.setText(display); 
      layout.addView(tv); 

у вас есть идеи, почему это происходит? Извините за длинный вопрос и большое спасибо!

+0

Возможный дубликат [Android: Показать строку с textView] (http://stackoverflow.com/questions/18641032/android-display-string-with- textview) задал аналогичный вопрос раньше. – Raghunandan

+0

Посмотрите на свой вывод logcat. Там должно быть исключение stacktrace, которое помогает определить проблему. – laalto

+2

Измените EditText на TextView в своей деятельности. Вы ссылаетесь на текстовое представление, но отправляете его в EditText. –

ответ

3

Ваш макет

и у вас есть: EditText editText=(EditText) this.findViewById(R.id.textView);

У нас есть ClassCastException здесь я полагаю, как TextView не может быть приведен к EditText, и поэтому ваши приложения аварии ,

AFAIK, это должно быть TextView textView=(TextView) this.findViewById(R.id.textView);

+0

Вы правы. Ответы @raghunandan помогают много. – Aravin

0

Строка «Дисплей» вы используете, может быть null.Log значение, что вы получаете в этой строке. Кроме того, в вашем коде переменная bundle, которую вы используете, является extraz с «z» и пытается прочитать ее с дополнительными данными с помощью «s'.c d logcat», если вы получаете nullpointer.

Bundle extraz =getIntent().getExtras(); 
String display = extras.getString("EXTRA_MESSAGE"); 

Кроме того, ваш XML не имеет редактирования text.check для TextView в вашей деятельности, а не editext.

0

Вы создаете текстовое изображение для редактирования текста в коде. Измените EditText на TextView в коде, иначе он выдаст исключение класса cast