2014-02-16 38 views
0
public class AddNetActivity extends Activity { 

String Url = "https://dl.dropboxusercontent.com/u/103170339/WebStock.xml"; 
TextView textInfo; 
ActionBar actionBar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    actionBar = getActionBar(); 
    textInfo = (TextView) findViewById(R.id.text_view_new_info); 
    // textInfo.setText("adasd"); <<<<<<<<<<<< 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    NetworkStatusXmlStart(); 
    setContentView(R.layout.activity_add_net); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.add_net, menu); 
    return true; 
} 

// Respond to Action Buttons 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle presses on the action bar items 
    switch (item.getItemId()) { 
     case R.id.action_accept: 
      // openAccept(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

public void NetworkStatusXmlStart(){ 
    ConnectivityManager connMgr = (ConnectivityManager) 
      getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 
     if (networkInfo != null && networkInfo.isConnected()) { 
      new WriteToXml().execute(Url); 
     } else { 
      // show error 
     } 
} 
private class WriteToXml extends AsyncTask<String, Void, String>{ 
    @Override 
    protected String doInBackground(String... urlS){ 
     try { 
      return downloadUrl(urlS[0]); 
     } catch (IOException e) { 
      return null; 
     } catch (XmlPullParserException e) { 
      return null; 
     } 
    } 

    @Override 
    protected void onPostExecute(String Result){ 
     // make resutlts 
    } 
} 

private String downloadUrl(String UrlStr) throws XmlPullParserException, IOException{ 
    InputStream streamInput = null; 
    XmlPullParser parser; 
    String writed; 
    try{ 
     streamInput = dowStream(UrlStr); 
     parser = downloadParser(streamInput); 
     writed = WriteToParserAndShow(parser); 
    } finally{ 
     if (streamInput != null) { 
      streamInput.close(); 
     } 
    } 
    return writed; 
} 

private InputStream dowStream(String Surl) throws IOException{ 
    URL url = new URL (Surl); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
    conn.setReadTimeout(10000 /* milliseconds */); 
    conn.setConnectTimeout(15000 /* milliseconds */); 
    conn.setRequestMethod("GET"); 
    conn.setDoInput(true); 
    // Starts the query 
    conn.connect(); 
    return conn.getInputStream(); 
} 

private XmlPullParser downloadParser(InputStream impStream) throws XmlPullParserException, IOException{ 
    XmlPullParser parser = Xml.newPullParser(); 
    parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); 
    parser.setInput(impStream, null); 
    parser.nextTag(); 
    return parser; 
} 

private String WriteToParserAndShow(XmlPullParser pars) throws XmlPullParserException, IOException{ 
    String Info = null, endTagName; 


    return Info; 
} 
} 

爲什麼當我要使用setText時,活動會壓碎?當我把它發表評論時,它工作正常。 XML文件如下這樣:SetText錯誤Android

<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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".AddNetActivity" 
android:background="#ccccf9" > 

<TextView 
    android:id="@+id/text_view_new_info" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="132dp" 
    android:text="Large Text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

告訴我,如果需要logcat的。 如何更改此textView中的文本?錯誤在哪裏? 請幫助

回答

1

您聲明並設置以下onCreate();

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
here > setContentView(R.layout.activity_add_net); 
0

你必須使用findViewById()前致電setContentView()setContentView(R.layout.activity_add_net);setContentView

移動在textview文本。

findViewById遍歷內容視圖以查找由您作爲第一個參數傳遞的標識指定的子視圖。但是,如果內容視圖尚未設置,它應該如何發現?

當您訪問某個未找到的視圖的函數或變量時,會導致NullPointerException

0

你忘了擴充你的佈局。在撥打super.onCreate()後插入setContentView(R.layout.mylayoutfile)