2014-01-06 2 views
-3

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

Но когда я извлекаю вид прокрутки от него кнопка не была видна на screen.How применить вид прокрутки здесь, чтобы получить на видимой кнопки ..

Вот мой код:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:id="@+id/RelativeLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="511dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:text="Faculty Name:" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/faculty_textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="18dp" 
      android:layout_toRightOf="@+id/textView1" 
      android:textColor="#83C9E7" /> 

     <TextView 
      android:id="@+id/branch_textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textView2" 
      android:layout_alignBottom="@+id/textView2" 
      android:layout_alignLeft="@+id/faculty_textView4" 
      android:layout_alignParentRight="true" 
      android:textColor="#83C9E7" /> 

     <TextView 
      android:id="@+id/year_textView6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/textView3" 
      android:layout_alignLeft="@+id/branch_textView5" 
      android:layout_alignParentRight="true" 
      android:textColor="#83C9E7" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/textView2" 
      android:layout_marginTop="42dp" 
      android:text="Year    :" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/textView1" 
      android:layout_marginTop="23dp" 
      android:text="Branch   :" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/textView3" 
      android:layout_marginTop="45dp" 
      android:text="Select Date:" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/selected_Date" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/textView4" 
      android:layout_toLeftOf="@+id/button1" 
      android:layout_toRightOf="@+id/textView1" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <DatePicker 
      android:id="@+id/datePicker" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" /> 

     <ImageView 
      android:id="@+id/date_picker_Image" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/selected_Date" 
      android:layout_alignLeft="@+id/button1" 
      android:src="@drawable/datepicker" /> 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/datePicker" 
      android:layout_alignParentRight="true" 
      android:text="Go" /> 

    </RelativeLayout> 

</LinearLayout> 

Он должен выглядеть следующим образом:

enter image description here

это мой Avtivity:

public class SelectionActivity extends Activity { 

    private int year; 
    private int month; 
    private int day; 
    private DatePicker datePicker; 
    private TextView selected_Date; 
    static final int DATE_DIALOG_ID = 999; 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.selected_details); 

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

//  datePicker.setVisibility(View.GONE); If I put this line I am getting null pointer exception other wise working fine 

     // date picker 
     setCurrentdateonView(); 

     Intent intent = getIntent(); 
     String faculty = intent.getStringExtra("faculty_name"); 
     String branch = intent.getStringExtra("branch_name"); 
     String year = intent.getStringExtra("year_name"); 

     TextView facultyTextView = (TextView) findViewById(R.id.faculty_textView4); 
     TextView branchTextView = (TextView) findViewById(R.id.branch_textView5); 
     TextView yearTextView = (TextView) findViewById(R.id.year_textView6); 

     facultyTextView.setText(faculty); 
     branchTextView.setText(branch); 
     yearTextView.setText(year); 

     findViewById(R.id.date_picker_Image).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       showDialog(DATE_DIALOG_ID); 
      } 
     }); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     // TODO Auto-generated method stub 
     switch (id) { 

     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, datePickerLisner, year, month, day); 

     } 
     return null; 
    } 


    private DatePickerDialog.OnDateSetListener datePickerLisner = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int Selectyear, int Selectmonth, int Selectday) { 
      year = Selectyear; 
      month = Selectmonth; 
      day = Selectday; 
      selected_Date.setText(new StringBuilder().append(Selectmonth + 1).append("-").append(Selectday).append("-") 
        .append(Selectyear).append("")); 
      datePicker.init(year, month, day, null); 
     } 
    }; 
    private void setCurrentdateonView() { 

     datePicker = (DatePicker) findViewById(R.id.datePicker); 

     final Calendar c = Calendar.getInstance(); 
     year = c.get(Calendar.YEAR); 
     month = c.get(Calendar.MONTH); 
     day = c.get(Calendar.DAY_OF_MONTH); 

     selected_Date.setText(new StringBuffer().append(month + 1).append("-").append(day).append("-").append(year) 
       .append("")); 
     datePicker.init(year, month, day, null); 
    } 

} 

Здесь я не хочу, чтобы показать дату подборщика при запуске activity.How?

LOG:

01-07 20:31:22.830: W/Choreographer(30706): Already have a pending vsync event. There should only be one at a time. 
01-07 20:31:22.880: I/brcm-gr(30706): [gralloc_lock]: new usage 0x933 
01-07 20:31:22.970: D/AbsListView(30706): Get MotionRecognitionManager 
01-07 20:31:23.010: D/AndroidRuntime(30706): Shutting down VM 
01-07 20:31:23.010: W/dalvikvm(30706): threadid=1: thread exiting with uncaught exception (group=0x41401930) 
01-07 20:31:23.010: E/AndroidRuntime(30706): FATAL EXCEPTION: main 
01-07 20:31:23.010: E/AndroidRuntime(30706): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geeklabs.studentattendance/com.geeklabs.studentattendance.activity.SelectionActivity}: java.lang.NullPointerException 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.ActivityThread.access$700(ActivityThread.java:150) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.os.Looper.loop(Looper.java:137) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.ActivityThread.main(ActivityThread.java:5283) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at java.lang.reflect.Method.invokeNative(Native Method) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at java.lang.reflect.Method.invoke(Method.java:511) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at dalvik.system.NativeStart.main(Native Method) 
01-07 20:31:23.010: E/AndroidRuntime(30706): Caused by: java.lang.NullPointerException 
01-07 20:31:23.010: E/AndroidRuntime(30706): at com.geeklabs.studentattendance.activity.SelectionActivity.onCreate(SelectionActivity.java:34) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.Activity.performCreate(Activity.java:5283) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 
01-07 20:31:23.010: E/AndroidRuntime(30706): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) 
01-07 20:31:23.010: E/AndroidRuntime(30706): ... 11 more 

Как решить. Заранее спасибо.

EDIT:

Я решил эту проблему

Просто вставив эту строку перед datePicker.setVisibility(View.GONE); эту линию

Datepicker = (DatePicker) findViewById (R.id.datePicker);

+1

Несмотря на то, что вопрос в этом случае является ответственным, всегда включайте данные о деталях, такие как stacktrace из logcat в вопросах. Кроме того, при чтении текста исключений вы указали бы прямо на решение. – laalto

+0

опубликуйте исключение stacktrace и для дальнейших комментариев присоединитесь к чату – Raghunandan

ответ

0

Прокрутка может содержать только одного ребенка. Поместите все мнения в вертикальной LinearLayout и он должен работать ...

1

http://developer.android.com/reference/android/widget/ScrollView.html

кавычки документы

ScrollView является FrameLayout, то есть вы должны поместить один ребенок в нем, содержащий все содержимое для прокрутки ; этот ребенок сам может быть менеджером компоновки со сложной иерархией объектов. Ребенок, который часто используется, представляет собой LinearLayout в вертикальной ориентации, представляя вертикальный массив элементов верхнего уровня, которые пользователь может прокручивать.

Итак, поставьте все свои взгляды в LinearLayout и сделайте LinearLayout дочерним элементом ScrollView.

Там могут быть и другие ошибки, а в этом случае вы должны размещать StackTrace

<ScrollView 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

<RelativeLayout 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:text="Faculty Name:" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/faculty_textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="18dp" 
      android:layout_toRightOf="@+id/textView1" 
      android:text="" 
      android:textColor="#83C9E7" /> 

     <TextView 
      android:id="@+id/branch_textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textView2" 
      android:layout_alignBottom="@+id/textView2" 
      android:layout_alignLeft="@+id/faculty_textView4" 
      android:layout_alignParentRight="true" 
      android:text="" 
      android:textColor="#83C9E7" /> 

     <TextView 
      android:id="@+id/year_textView6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/textView3" 
      android:layout_alignLeft="@+id/branch_textView5" 
      android:layout_alignParentRight="true" 
      android:text="" 
      android:textColor="#83C9E7" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignRight="@+id/textView3" 
      android:layout_below="@+id/textView3" 
      android:layout_marginTop="38dp" 
      android:text="Select Date:" 
      android:textStyle="bold" /> 

     <DatePicker 
      android:id="@+id/datePicker1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/textView4" /> 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_toRightOf="@+id/datePicker1" 
      android:text="Go" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignRight="@+id/textView1" 
      android:layout_below="@+id/textView1" 
      android:text="Branch   :" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/textView2" 
      android:layout_toLeftOf="@+id/faculty_textView4" 
      android:text="Year    :" 
      android:textStyle="bold" /> 

</RelativeLayout> 
</LinearLayout> 
</ScrollView> 

защелками

Я попробовал его на Kikat. Таким образом, вы получаете новый взгляд DatePicker.(Игнорируйте)

enter image description here

enter image description here

+0

Спасибо за ваш ответ, но я не могу четко понять свое мнение. –

+0

@shylendra вы можете быть более конкретным, а также опубликовать stacktracw – Raghunandan

+0

@shylendra, что вы имеете в виду, не имея возможности четко просмотреть. Это крушение? – Raghunandan

1

ScrollView может иметь только 1 ребенка. Так разместить все TextViews в LinearLayout с android:orientation="vertical"

1

ScrollView вид, в котором вы можете добавить только один вид. И если вы пытаетесь установить другое представление, тогда отобразится ошибка «ScrollView может содержать только один дочерний вид».

Так есть лучший способ взять один VerticalLinear Layout и поместить все ваши TextViews внутренности его.

Спасибо!

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