2016-07-28 18 views
-1
//This is the TextViewExample class 
public class TextViewExample { 

private TextView mTextViewExample; 

public TextViewExample(Activity activity) { 
    mActivity = activity; 
    mTextViewExample = (TextView)mActivity.findViewById(R.id.TextViewLayout); 
    } 
} 

//This is the Fragment class 
public class TextViewFragment extends Fragment { 

    private TextViewExample mText; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    mText = new TextViewExample(getActivity()); 
    } 
} 

mTextはUIで更新されていません!誰かが適切にTextViewを表示する正しい方法を、フラグメント内のアクティビティを呼び出すことから説明できますか?アンドロイド - TextViewはUIで更新されません

//This is the Fragment class 
public class TextViewFragment extends Fragment { 
    private TextView mText; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     // you need to inflate the xml file holding this TextView. 
     mText = (TextView) getActivity().findViewByid(R.id.<your-text-view-id>; 
     // do something with your TextView 
    } 
} 

NPEのを避けるためにgetActivity() == nullをチェックしてください:

感謝=)

+0

あなたは 'TextViewExample'を使用しない理由' findViewById'、によって直接 'onCrateView'で' TextView'にアクセスすることができますか? –

+0

クラスにパラメータとして渡すアクティビティでsetContentView(..)を呼び出しましたか? – user1841702

+0

あなたは何も膨らませていないし、動的なTextViewを作成したい場合はレイアウトに追加する必要があります。私は特定のアンドロイドの標準を見ていないよ。アンドロイドとフラグメントの基礎を学んでください.. !! –

答えて

0

あなたが直接活動に装着され、このフラグメントを想定した断片における活動のTextViewは、()にアクセスすることができます。

0

活動:

public class MainActivity { 

    private TextView mTextViewExample; 

    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     mTextViewExample = (TextView) findViewById(R.id.TextViewLayout); 
     } 
    } 

    public void setTextViewExampleText(String text) { 
     mTextViewExample.setText(text); 
    } 

TextViewFragment

public class TextViewFragment extends Fragment { 

    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     ((MainActivity) getActivity()).setTextViewExampleText("text"); 
    } 
} 
関連する問題