【问题标题】:SetText error AndroidSetText错误Android
【发布时间】:2014-02-16 11:11:17
【问题描述】:
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 时,Activity 会崩溃?当我将它放入评论时,它工作正常。 XML 文件如下所示:

<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 中的文本?错误在哪里? 请帮忙

【问题讨论】:

    标签: android text settext


    【解决方案1】:

    您在textview 中声明和设置文本,位于setContentView 之前

    setContentView(R.layout.activity_add_net);移动到onCreate();下方

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

    【讨论】:

      【解决方案2】:

      在使用findViewById()之前,您必须先致电setContentView()

      findViewById 遍历内容视图以查找由您作为第一个参数传递的 id 指定的子视图。但是如果内容视图还没有设置,它应该如何找到任何东西呢?

      当您访问未找到的视图之一的函数或变量时,这会导致 NullPointerException

      【讨论】:

        【解决方案3】:

        你忘了给你的布局充气。在 super.onCreate() 调用之后插入setContentView(R.layout.<i>mylayoutfile</i>)

        【讨论】:

          【解决方案4】:

          能否请您验证您在 setText() 中提供的属性 id 是否正确? 您可能在调用 setText() 时遇到了 NullPointerException,因为 activity_main.xml 中提供的属性 id 可能与 MainActivity.java 中提供的 attribute_id 不匹配

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-01-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-17
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多