片段查找器由textview的id

时间:2015-03-05 09:14:20

标签: android

我正在处理片段但是当使用resultView =(TextView)时,findViewById(R.id.result);我收到一个错误。我可以用什么来查找textview的id?

      public class UpcomingEvents extends Fragment {

    //private int index;
    //private WebView mWebView;

    @Override
    public void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);
    }


     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);

     }


     TextView resultView;


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

        //View v = inflater.inflate(R.layout.fragment, null);
        View v=inflater.inflate(R.layout.upcomingevents, container,false);

          StrictMode.enableDefaults(); //STRICT MODE ENABLED
          resultView = (TextView) findViewById(R.id.result);

           getData();

        return v;
    }
    public void getData(){
        String result = "";
        InputStream isr = null;
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://10.0.2.2/test2/getAllCustomers.php"); //YOUR PHP SCRIPT ADDRESS 
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            isr = entity.getContent();
    }
    catch(Exception e){
            Log.e("log_tag", "Error in http connection "+e.toString());
            resultView.setText("Couldnt connect to database");
    }
    //convert response to string
    try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(isr,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
            }
            isr.close();

            result=sb.toString();
    }
    catch(Exception e){
            Log.e("log_tag", "Error  converting result "+e.toString());
    }

      //parse json data
      try {
       String s = "";
       JSONArray jArray = new JSONArray(result);

       for(int i=0; i<jArray.length();i++){
           JSONObject json = jArray.getJSONObject(i);
           s = s + 
                    "Name : "+json.getString("FirstName")+"             "+json.getString("LastName")+"\n"+
                   "Age : "+json.getInt("Age")+"\n"+
                   "Mobile Using : "+json.getString("Mobile")+"\n\n";
       }

       resultView.setText(s);

      } catch (Exception e) {
    // TODO: handle exception
       Log.e("log_tag", "Error Parsing Data "+e.toString());
   }

    enter code here
    }

}

这里是我创建的xml文件,我试图获取id的textview id是结果

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ADD8E6"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />
</LinearLayout>

2 个答案:

答案 0 :(得分:2)

更改

 resultView = (TextView) findViewById(R.id.result);

 resultView = (TextView)v.findViewById(R.id.result);

findViewById来自Fragment的虚增视图。

答案 1 :(得分:0)

你应该使用getView()。findViewById(id),如下所示(在onViewCreated方法中):

resultView = (TextView) getView().findViewById(R.id.result);

如果您在onCreateView中使用它,那么以下内容:

 resultView = (TextView) v.findViewById(R.id.result);