Ich weiß, das mag wie eine wiederholte Frage klingen, aber ich habe alle Lösungen versucht nichts funktioniert.Es zeigt den Fehler "Kann Konstruktor ArrayAdapter nicht auflösen" Ich habe Listview in Mainactivity, die ich bestanden habe zur zweiten Aktivität, wo ich eine Remote-Datenbank suche und Ergebnisse in Listview anzeigen. Nehmen Sie einen look..Thank Sie .. das ist mainactivity:Kann Konstruktor ArrayAdapter in OnPostExecute in AsyncTask nicht lösen
public class Main2Activity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private EditText location;
private TextView result ;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
location = (EditText)findViewById(R.id.editText1);
result = (TextView)findViewById(R.id.textView4);
lv = (ListView) findViewById(R.id.lv);
}
public void search(View view){
String slocation = location.getText().toString();
new SearchActivity(this,lv,1).execute(slocation);
}
SearchActivity
public class SearchActivity extends AsyncTask<String,Void,String[]>{
private Context context;
private int byGetOrPost = 0;
private TextView sresult;
ListView lv1;
JSONArray garages;
String[] names;
public SearchActivity(Context context,ListView lv1,int flag) {
this.context = context;
byGetOrPost = flag;
this.lv1 = lv1;
}
protected void onPreExecute(){
}
@Override
protected String[] doInBackground(String... arg0) {
try{
String location = (String)arg0[0];
String link="http://garagekhojo.in/androidtest.php";
String data = URLEncoder.encode("location", "UTF-8") + "=" + URLEncoder.encode(location, "UTF-8");
URL url = new URL(link);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
// Read Server Response
while((line = reader.readLine()) != null)
{
sb.append(line);
break;
}
String newsb = sb.toString();
JSONObject jo = new JSONObject(newsb) ;
garages = jo.getJSONArray("garages");
for (int i = 0; i < garages.length(); i++) {
JSONObject c = garages.getJSONObject(i);
names[i] = c.getString("name");
}
return names;
}
catch(Exception e){
return null;
}
}
@Override
protected void onPostExecute(String[] names){
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(this, R.layout.class,names);
lv1.setAdapter(adapter);
}
}
versuchen Sie dies, es wird Ihnen helfen, Kontext anstelle von diesem zu verwenden. Adapter = neuer ArrayAdapter (Kontext, R.layout.class, Namen); –
Nowshad
posten Sie bitte auch Ihren ArrayAdapter-Klassencode. – Nowshad
@Nowshad ArrayAdapter ist eine vordefinierte Klasse in Android. –