2014-02-16 2 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" /> 

이 말해. 이 textView에서 텍스트를 변경하는 방법은 무엇입니까? 오류가 어디 있습니까?

답변

1

도와주세요 당신은 선언하고 setContentView

이동하기 전에 findViewById()를 사용하기 전에 setContentView()를 호출해야하는 onCreate();

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

아래 setContentView(R.layout.activity_add_net);textview의 텍스트를 설정합니다.

findViewById은 콘텐츠보기를 반복하여 첫 번째 인수로 전달한 ID로 지정된 하위보기를 찾습니다. 그러나 콘텐츠 뷰가 아직 설정되지 않은 경우 콘텐츠를 어떻게 찾을 수 있습니까?

찾을 수없는 뷰 중 하나의 함수 또는 변수에 액세스하면 NullPointerException이됩니다.

0

레이아웃을 부 풀기를 잊어 버렸습니다. super.onCreate() 호출 후 setContentView(R.layout.mylayoutfile)을 삽입하십시오.