2017-07-22 2 views
-1

Fehler: (90, 20) Fehler: inkompatible Typen: int kann nicht in String umgewandelt werden, wie der Fehler behebenFehler beim Lesen der Zeichenfolge-Ressource in Java-Datei

in lineR.string.Invalid_city_name

der Verwendung von Methode

getstring (R. string.Invalid_city_name) der gleiche Fehler was ist falsch?

  status="success"; 
     }else{ 
      status=R.string.Invalid_city_name; 
     } 

vollständiger Code:

package com.nbdev.app.weatherapp.json; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.json.JSONObject; 

import android.app.Dialog; 
import android.content.Context; 
import android.os.AsyncTask; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.nbdev.app.weatherapp.ActivityMain; 
import com.nbdev.app.weatherapp.adapter.ItemLocationAdapter; 
import com.nbdev.app.weatherapp.data.Constant; 
import com.nbdev.app.weatherapp.data.DatabaseManager; 
import com.nbdev.app.weatherapp.data.GlobalVariable; 
import com.nbdev.app.weatherapp.model.City; 
import com.nbdev.app.weatherapp.R; 
import com.nbdev.app.weatherapp.model.ForecastResponse; 
import com.nbdev.app.weatherapp.model.ItemLocation; 
import com.nbdev.app.weatherapp.model.WeatherResponse; 

public class JSONLoader extends AsyncTask<String, String, ItemLocation>{ 
    private JSONParser jsonParser = new JSONParser(); 
    private String jsonWeather = null, 
      jsonForecast= null, 
      status="null"; 

    private Context ctx; 
    private LinearLayout lyt_form; 
    private LinearLayout lyt_progress; 
    private TextView tv_message; 
    private Dialog dialog; 
    private DatabaseManager db; 
    private GlobalVariable global; 
    private ActivityMain act; 

    public JSONLoader(ActivityMain act, LinearLayout lyt_form, LinearLayout lyt_progress, TextView tv_message, Dialog dialog) { 
     this.act=act; 
     this.ctx=act.getApplicationContext(); 
     this.lyt_form=lyt_form; 
     this.lyt_progress=lyt_progress; 
     this.tv_message=tv_message; 
     this.dialog=dialog; 
     global = (GlobalVariable) act.getApplication(); 
     db = new DatabaseManager(act); 
    } 


    @Override 
    protected void onPreExecute() { 
     lyt_form.setVisibility(View.GONE); 
     lyt_progress.setVisibility(View.VISIBLE); 
     super.onPreExecute(); 
    } 

    @Override 
    protected ItemLocation doInBackground(String... params) { 
     ItemLocation itemLocation = new ItemLocation(); 

     try { 
      Thread.sleep(50); 
      List<NameValuePair> param = new ArrayList<NameValuePair>(); 
      City city = db.getWordsFormAutocomplate(params[0]); 
      if(city!=null){ 
       itemLocation.setId(city.getId()); 
       itemLocation.setName(city.getName()); 
       itemLocation.setCode(city.getCode()); 

       String url_weather  = Constant.getURLweather(city.getId()); 
       String url_forecast  = Constant.getURLforecast(city.getId()); 

       JSONObject json_weather  = jsonParser.makeHttpRequest(url_weather,"POST", param); 
       JSONObject json_forecast = jsonParser.makeHttpRequest(url_forecast,"POST", param); 

       jsonWeather  = json_weather.toString(); 
       jsonForecast = json_forecast.toString(); 

       itemLocation.setJsonWeather(jsonWeather); 
       itemLocation.setJsonForecast(jsonForecast); 

       status="success"; 
      }else{ 
       status=(R.string.Invalid_city_name(); 
      } 

     } catch (Exception e) { 
      status = e.getMessage(); 
      e.printStackTrace(); 
     } 

     return itemLocation; 
    } 

    protected void onPostExecute(ItemLocation result) { 
     lyt_form.setVisibility(View.VISIBLE); 
     lyt_progress.setVisibility(View.GONE); 
     if(status.equals("success")){ 
      global.saveLocation(result); 
      act.refreshList(); 
      dialog.dismiss(); 
     } 
     tv_message.setText(status); 
     //Toast.makeText(ctx, status, Toast.LENGTH_LONG).show(); 
    }; 

} 
+0

ändern Sie dies "status = R.string.Invalid_city_name;" zu diesem "status = act.getString (R.string.Invalid_city_name); –

+0

https://stackoverflow.com/questions/45255170/error-reading-xml-string-in-java-file nicht repost. Downvoted und markiert für Moderatoren – Zoe

Antwort

-1

Sie benötigen einen Kontext/Activity-String aus Ihren Ressourcen zu erhalten.

Änderung dieser:

status=R.string.Invalid_city_name;

dieser

status=act.getString(R.string.Invalid_city_name);

+0

vielen Dank, es hat funktioniert –

+0

Willkommen .. nur sicher, diese Antwort als Lösung zu wählen, um diese Frage zu beantworten ist an. @NikolaiBuzovskiy –