2

我在的internet帮助下从AsyncTask_ _Fragment_subclassimplements interfaceonPostExecute()objectFragment_subclass

编辑:

textView是内部fragment's布局

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

oPostExecute()async_task一流的。

protected void onPostExecute (String result)
{
    browse ob_br = new browse() ;
    ob_br.implement_it_();
}

browse是 a fragment,它正在实现 ,interface它的名字是implement_it_

public class browse extends Fragment implements implement_it_
{
    -------------------- // code ....
    public void implement_it_() 
    {
         TextView txt_1 = ( TextView ) getActivity().findViewById ( R.id.txt) ;
         txt_1.setText("hello");
    }
}

编辑:错误,

FATAL EXCEPTION: main
java.lang.NullPointerException
at com.example.the_hindu_news.browse.implement_it_(browse.java:38)
at com.example.the_hindu_news.Async_list.onPostExecute(Async_list.java:56)
at com.example.the_hindu_news.Async_list.onPostExecute(Async_list.java:1)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
GC_CONCURRENT freed 185K, 12% free 2578K/2904K, paused 10ms+5ms, total 237ms

实际上,我面临的问题是......

我还没有初始化我的片段类&我像使用它一样,新浏览()作为传递变量,所以它产生了问题,因为每次获取一个新变量。

4

3 回答 3

2

如果要将文本值设置为 textView。你只需按照下面的代码。它正在片段中工作。

公共类 CafeBarHome 扩展片段{

Button home;
TextView txt;
@Override   
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState){

    LinearLayout cafeLayout = (LinearLayout) inflater.inflate(R.layout.cafehomefrag1,container, false);

     Intent i = getActivity().getIntent();
    home = (Button) cafeLayout.findViewById(R.id.btn_cafehome);
    txt = (TextView) cafeLayout.findViewById(R.id.txt1);
    txt.setText("Rio Web solution");
    String h = i.getStringExtra("value");
    Log.e("Second Screen", h);

    return cafeLayout;
}

}

于 2013-09-30T11:18:13.223 回答
1

getActivity()方法Fragment将返回 null 直到 afteronActivityCreated()被调用。因此,您不能在使用它的地方使用它,否则您将获得NullPointerException.

此外,在您在 Activity 中执行 a 之前,您的 Fragment 不属于任何FragmentTransactionActivity。我建议您阅读此文档。

于 2013-03-20T06:34:38.377 回答
0

通过以下方式获取 TextView 的 id

TextView tv = (TextView) findViewById(R.id.textview_id);

现在将文本设置为

tv.setText("Your_text_here");

祝你好运!

于 2013-03-20T06:00:51.467 回答