【发布时间】:2016-04-28 11:12:27
【问题描述】:
我知道这听起来像是一个重复的问题,但我已经尝试了所有解决方案,但没有任何效果。它显示错误“无法解析构造函数 ArrayAdapter”我在 Mainactivity 中有列表视图,我已将其传递给我正在搜索的第二个活动远程数据库并在列表视图中显示结果。 看看。。谢谢。。 这是主要活动:
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);
}
搜索活动
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);
}
}
【问题讨论】:
-
试试这个可能会帮助你使用上下文而不是这个。 adapter = new ArrayAdapter
(context, R.layout.class,names); -
请同时发布您的 ArrayAdapter 类代码。
-
@Nowshad ArrayAdapter 是 android 中的预定义类。
标签: android listview android-asynctask android-arrayadapter