Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PostExecute上的NullPointerException_Java_Android_Nullpointerexception - Fatal编程技术网

Java PostExecute上的NullPointerException

Java PostExecute上的NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,我试图在TextView上显示值,但如果我想在PostExecute上填充TextView,我会得到一个NullPointerException。我已经用日志检查了列表是否为空,但它已填充 我的代码: public class DBResult extends MainActivity { //Erstellen eines JSON Parser Objekts JSONParser jParser = new JSONParser(); ArrayList<H

我试图在
TextView
上显示值,但如果我想在
PostExecute
上填充
TextView
,我会得到一个
NullPointerException
。我已经用
日志检查了
列表是否为空,但它已填充

我的代码:

public class DBResult extends MainActivity {

    //Erstellen eines JSON Parser Objekts
    JSONParser jParser = new JSONParser();
    ArrayList<HashMap<String,String>> LIST = new ArrayList<>();

    // url to get all products list
    private static String url_dataget = "DATAGET_PHP";

    // JSON Node 
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_PRODUCTS = "products";
    private static final String TAG_NAME = "name";
    private static final String TAG_INN = "inn";
    private static final String TAG_AnalgetikaGroup= "analgetikagroup";
    private static final String TAG_WHOLevel = "wholevel";
    private static final String TAG_DailyDose = "dailydose";
    private static final String TAG_contraindication = "contraindication";
    private static final String TAG_SideEffect = "sideeffect";
    private static final String TAG_GastricProtection = "gastricprotection";


    // products JSONArray
    JSONArray products = null;

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

        //Background Thread
        new LoadMed().execute();

    }
    class LoadMed extends AsyncTask<String,String,String>{
    protected String doInBackground(String...args){

        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        // getting JSON string from URL
        JSONObject json = jParser.makeHttpRequest(url_dataget, "GET", params);

        // Check your log cat for JSON reponse
        Log.d("Medic: ", json.toString());

        try {
            // Checking for SUCCESS TAG
            int success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                // products found
                // Getting Array of Products
                products = json.getJSONArray(TAG_PRODUCTS);

                // looping through All Products
                for (int i = 0; i < products.length(); i++) {
                    JSONObject c = products.getJSONObject(i);

                    // Storing each json item in variable

                    String name = c.getString(TAG_NAME);
                    String INN = c.getString(TAG_INN);
                    String AnalgetikaGroup = c.getString(TAG_AnalgetikaGroup);
                    String WHOLevel = c.getString(TAG_WHOLevel);
                    String DailyDose = c.getString(TAG_DailyDose);
                    String contraindication = c.getString(TAG_contraindication);
                    String SideEffect = c.getString(TAG_SideEffect);
                    String GastricProtection = c.getString(TAG_GastricProtection);
                    HashMap<String,String> map = new HashMap<>();
                    map.put(TAG_NAME,name);
                    map.put(TAG_INN,INN);
                    map.put(TAG_AnalgetikaGroup,AnalgetikaGroup);
                    map.put(TAG_WHOLevel,WHOLevel);
                    map.put(TAG_DailyDose,DailyDose);
                    map.put(TAG_contraindication,contraindication);
                    map.put(TAG_SideEffect,SideEffect);
                    map.put(TAG_GastricProtection,GastricProtection);
                    Log.d("LIL",map.toString());
                    LIST.add(map);





                }
            }
        }catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }
     protected void onPostExecute(String file_url) {

        runOnUiThread(new Runnable() {
            public void run() {
                Log.d("sad", LIST.toString());
                TextView mednamefield = findViewById(R.id.medname);
                TextView sideeffectfield = findViewById(R.id.sideeffect);
                TextView medWHOfield = findViewById(R.id.wholevel);
                TextView medGastricProtectionfield = findViewById(R.id.gastricprotecio);
                TextView medINNfield = findViewById(R.id.INN);
                TextView medDailyDosefield = findViewById(R.id.dailydose);
                TextView medanalgeticafield = findViewById(R.id.analgeticagroup);
                TextView contraindicationfield = findViewById(R.id.contraindication);


                mednamefield.setText(LIST.get(0).get(TAG_NAME));
                sideeffectfield.setText(LIST.get(1).get(TAG_SideEffect));
                medWHOfield.setText((LIST.get(2).get(TAG_WHOLevel)));
                medGastricProtectionfield.setText("Magenschutz empfohlen: " + LIST.get(3).get(TAG_GastricProtection));
                contraindicationfield.setText(LIST.get(4).get(TAG_contraindication));
                medINNfield.setText("INN: " + LIST.get(5).get(TAG_INN));
                medDailyDosefield.setText(LIST.get(6).get(TAG_DailyDose));
                medanalgeticafield.setText(LIST.get(7).get(TAG_AnalgetikaGroup));

            }

    });
    }


    }

注意:我已经阅读了关于stackoverflow的文章“What is a NullPointerException”和其他一些关于此主题的文章,但我仍然找不到正确的解决方案。您需要添加:
setContentView(R.layout.your_xml)内部
onCreate

  setContentView(R.layout.your_xml);
更新:

对于第二个问题,您实际上将实例
map
放在
LIST
不是映射的值,而是需要执行以下操作:

List<String> list = new ArrayList<Sting>(map.values());
List List=newarraylist(map.values());

您不能在setContentView方法中添加“活动”

    setContentView(R.layout.layout_issue);//your layout.

您错过了
setContentView()
onCreate()中

一旦创建:

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

    setContentView(R.layout.your_xml);

    //Background Thread
    new LoadMed().execute();

}

“您没有在onCreate方法中添加布局。@MichaelDodd请先阅读问题。您是否知道哪个对象是
null
,为什么是
null
?@Dumbo“我仍然无法解决它”不是一个很好的理由。”。OP应该指出问题所在(哪个对象是
null
,等等)。如果您有不同的问题,请询问另一个问题。记得先调试你的程序。谢谢你的回答。我解决了这个问题并编辑了我的文章检查update@user9094494在这个网站上,问题不是文章。如果您有不同的问题,请问不同的问题。我不能
List List=new ArrayList(map.values())
因为
map
在类
LoadMed
@user9094494 Memory中,它不是为了帮助单个用户,而是为了创建有用问题/答案的存储库。这样做只会把一切弄得乱七八糟,并使未来的游客感到困惑。
@Override
public void onCreate (Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    setContentView(R.layout.your_xml);

    //Background Thread
    new LoadMed().execute();

}