无法使用AsyncTask

时间:2016-08-02 09:11:51

标签: android android-layout android-studio android-asynctask

我有一个AsyncTask,我想在我的 layout.xml 文件中设置TextView的文字,但我的应用程序崩溃了,错误就是这个

  

android.content.res.Resources $ NotFoundException:字符串资源ID#0x2

请帮帮我!

public class UploadVideo extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
    
        
    super.onCreate(savedInstanceState);
    
        transferUtility = Util.getTransferUtility(this);
    
        requestWindowFeature(getWindow().FEATURE_NO_TITLE);
    
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    
        setContentView(R.layout.my_activity);
    
    
        context = this;
    
    
        new get_people_data().execute();
    }


    public class get_people_data extends AsyncTask<String,String,String>{
    
    
        final String TAG = "get_people_data";
    
    
        String API_URL = "http://api.expressionsapp.com/users/auth0_5732cc152781665b7b5dfee6/status/";
    
        int front;
    
        int behind;
    
        @Override
    
        protected String doInBackground(String...arg0)
        {
    
            try
    
            {
    
                JsonParser jParser = new JsonParser();
    
                JSONObject json = jParser.getJSONFromUrl(API_URL);
    
                behind= json.getInt("countBack");
    
                front= json.getInt("countFront");
    
    
            }catch (JSONException e)
            {
    
                e.printStackTrace();
    
            }
    
            return null;
    
        }
    
    
        @Override
    
        protected void onPostExecute(String s)
        {
    
            TextView ppl_infront;
    
            TextView ppl_behind;
    
            ppl_infront = (TextView) findViewById(R.id.ppl_infront);
    
            ppl_infront.setText(front);
    
            ppl_behind = (TextView) findViewById(R.id.ppl_behind);
    
            ppl_behind.setText(behind);
    
        }
    
    }
}

3 个答案:

答案 0 :(得分:2)

问题在于

ppl_infront.setText(front);
 
ppl_behind.setText(behind);

因为你使用

传递和int(前面是int类型)
  

final void setText(int resid)

并且系统在R文件中搜索具有该int id(即自动生成的文件)

改变:

ppl_infront.setText(String.valueOf(front));
      
ppl_behind.setText(String.vaueOf(behind));
使用

  

final void setText(CharSequence text)

这里是官方reference

答案 1 :(得分:0)

做你的

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


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


<{1}}

下面的onCreate()方法中的

如果它无法解决您的问题,请发布您的xml文件。

答案 2 :(得分:0)

快速解决方案:

如果您不想弄乱String.value(front),可以将文字设置如下。

ppl_behind.setText(front + "");