-2

탐색 서랍 메뉴에 조각을 구현 중입니다. 단추를 클릭하면 편집 텍스트의 내용을 읽고 텍스트보기에서 읽은 내용을 표시하고 싶습니다. 그러나, 나는 다음과 같은 오류가 점점 오전 : java.lang.NullPointerException이를 :버튼 클릭시 텍스트 내용 편집을 읽는 중 오류가 발생하여 TextView에 표시됩니다.

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    editText = (EditText) getView().findViewById(R.id.id_editText); 
    button = (Button) getView().findViewById(R.id.id_button); 
    textView = (TextView) getView().findViewById(R.id.id_textView); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String Name = editText.getText().toString(); 
      textView.setText(Name); 
     } 
    }); 

    return inflater.inflate(R.layout.fragment_chat, container, false); 

} 

: '

조각 클래스 android.view.View에서 android.view.View에서를 가상 메소드를 호출 시도 조각 XML

<RelativeLayout 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:background="#566D7E" 
tools:context="com.example.jr.mybluetoothchat.ChatFragment"> 


<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Enter Text" 
    android:ems="10" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="90dp" 
    android:id="@+id/id_editText" /> 

<Button 
    android:text="Click" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/id_editText" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="43dp" 
    android:id="@+id/id_button" /> 

<TextView 
    android:text="Entered Text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/id_button" 
    android:layout_alignStart="@+id/id_editText" 
    android:layout_marginStart="43dp" 
    android:layout_marginTop="91dp" 
    android:id="@+id/id_textView" /> 

내용 홈페이지 XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/id_content_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#BCC6CC" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.example.jr.mybluetoothchat.MainActivity" 
    tools:showIn="@layout/app_bar_main"> 


</RelativeLayout> 

주요 활동

public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     int id = item.getItemId(); 

     if (id == R.id.nav_home) 
     { 
      Toast.makeText(this,"Home",Toast.LENGTH_SHORT).show(); 
     } else if (id == R.id.nav_chat) 
     { 
      Toast.makeText(this,"Chat",Toast.LENGTH_SHORT).show(); 
      FragmentManager fragmentManager = getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      ChatFragment chatFragment = new ChatFragment(); 
      fragmentTransaction.replace(R.id.id_content_main,chatFragment); 
      fragmentTransaction.commit(); 
     } else if (id == R.id.nav_invite) 
     { 
      Toast.makeText(this,"Invite",Toast.LENGTH_SHORT).show(); 
     } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
    } 
+0

뷰 rootView = inflater.inflate (R.layout.fragment_layout, container, false); editText = (EditText) rootView.findViewById (R.id.id_editText); (onCreateView에서) 시도해보십시오 –

+0

'getView()'는 onCreateView 내에서 항상 null을 반환합니다. 뷰를 설정하는 메소드이기 때문입니다. 아무것도 얻을 수 없습니다. –

+0

@ cricket_007 : 감사합니다! – Meghana

답변

0

변경 당신이

이 코드

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    editText = (EditText) getView().findViewById(R.id.id_editText); 
    button = (Button) getView().findViewById(R.id.id_button); 
    textView = (TextView) getView().findViewById(R.id.id_textView); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String Name = editText.getText().toString(); 
      textView.setText(Name); 
     } 
    }); 

    return inflater.inflate(R.layout.fragment_chat, container, false); 

} 

+0

!!! 그것은 효과가 있었다. – Meghana

+0

@ 메그나는 그것을 알고 기뻐합니다. – Ironman