2017-04-18 9 views
-1

これまでに何度も答えられていると言われる前に、この質問をした人の大部分を間違ったID TextViewの配置場所とは異なるContentViewを設定します。私はすでにうまく機能していた別の場所でこの機能を使用しました。 TextView.setText()で文字列リテラルを使用しようとしましたが、無駄でした。 javaファイル内Textview.setText正しいコンテンツが表示されているにもかかわらずnullpointerを投げるView

contactstory.xmlファイル

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<TextView 
    android:id="@+id/textyman" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_marginTop="100dp" 
    android:text="TextView" /> 
<Button 
    android:id="@+id/close" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Close" /> 
</LinearLayout> 

機能

public void ShowStory(int pos) 
{ 
    final Dialog dialog = new Dialog(this); 
    dialog.setTitle(srcnames[pos]); 
    dialog.setContentView(R.layout.contactstory); 
    String username=getIntent().getStringExtra("username"); 
    LoginDataBaseAdapter loginDataBaseAdapter=new 
    LoginDataBaseAdapter(this); 
    loginDataBaseAdapter.open(); 
    String story=loginDataBaseAdapter.GetStory(pos,username); 
    TextView t1=(TextView)findViewById(R.id.textyman); 
    Button btnend=(Button)findViewById(R.id.close); 
    if(TextUtils.isEmpty(story)){ 
     t1.setText(username+" hasn't added any story for this song"); 
    } 
    else { 
     t1.setText(story); //Exception is thrown here 
    } 

    btnend.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v) { 
     dialog.dismiss(); 
    } 
}); 
    dialog.show(); 

} 

Logcat

FATAL EXCEPTION: main 

java.lang.NullPointerException 

at com.example.sherry.escuchame.ContactInfo.ShowStory(ContactInfo.java:157) 

at 
com.example.sherry.escuchame.ContactInfo.onContextItemSelected 
(ContactInfo.java:140) 

at android.app.Activity.onMenuItemSelected(Activity.java:2660) 

at android.support.v4.app.FragmentActivity.onMenuItemSelected 
(FragmentActivity.java:408) 

at 
android.support.v7.app.AppCompatActivity.onMenuItemSelected 
(AppCompatActivity.java:195) 

at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected 
(WindowCallbackWrapper.java:113) 
+0

[NullPointerExceptionとは何か、どうすれば修正できますか?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i) -fix-it) –

答えて

0

代わりに使用して直接R.layout.contactstoryのようなパスレイアウトIDを設定しないでください以下のコードのようにレイアウトを膨らませるためにインフレータを配置する

View view = LayoutInflater.from(context).inflate(R.layout.contactstory,null); 
dialog.setContentView(view); 
TextView t1=(TextView)view.findViewById(R.id.textyman); 
+0

これはうまくいった。どうもありがとうございました。 :D –

関連する問題