我想将位图图像放入ListView的ImageView中。我将图像从url更改为位图图像。我有10个图像,我必须将图像放在ListView的每个项目中。有什么方法除了懒惰适配器??在此先感谢!!!
这是我的代码
public class Propertylist extends ListActivity {
String proptype;
String prop;
String estimate;
String photo;
String get;
String[] data;
TextView text;
URL aURL;
InputStream is = null;
String result = "";
JSONObject jArray = null;
//Hashtable<String,Bitmap> imagemap;
private ArrayList<NameValuePair> nameValuePairs;
private LayoutInflater inflater;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
text = (TextView) findViewById(R.id.text);
Toast.makeText(getApplicationContext(), "Displaying popertylist for zipcode "+get, Toast.LENGTH_LONG).show();
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
//ArrayList<Hashtable<String, Bitmap>> mylist1 = new ArrayList<Hashtable<String, Bitmap>>();
Bundle bundle = this.getIntent().getExtras();
get = bundle.getString("name");
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.propertyhookup.com/mobile/propertylist.php");
nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("zipcode", get.trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
if(result.length()<= 7){
Toast.makeText(getApplicationContext(), "No properties for this zipcode or check your zipcode ", Toast.LENGTH_LONG).show();
text.setText("No properties for this zipcode or check your zipcode");
}
else{
try{
jArray = new JSONObject(result);
}catch(JSONException e){
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
//JSONObject json = JSONfunctions.getJSONfromURL("http://192.168.1.111/propertyhookup.com/mobile/propertylist.php");
try{
JSONArray earthquakes = jArray.getJSONArray("earthquakes");
for(int i=0;i<10;i++){
HashMap<String, String> map = new HashMap<String, String>();
//imagemap = new Hashtable<String, Bitmap>();
JSONObject e = earthquakes.getJSONObject(i);
if(e.getString("property_type").contains("1")) {
proptype ="Single Family Home";
}else if(e.getString("property_type").contains("2")) {
proptype="Condo";
}else if(e.getString("property_type").contains("3")) {
proptype="Townhouse";
}
if(e.getString("estimated_price").contains("0")) {
estimate = "Not Enough Market Value";
//estimat = (TextView) findViewById(R.id.estimat);
//estimat.setTextColor(Color.rgb(0, 0, 23));
}else {
estimate = "$"+e.getString("estimated_price");
}
photo = e.getString("photo1");
map.put("id", String.valueOf(i));
map.put("percent", e.getString("percentage_depreciation_value")+"%");
map.put("propertyid", "#"+e.getString("property_id")+" ");
map.put("cityname",e.getString("city_name")+",");
map.put("statecode",e.getString("state_code"));
map.put("propertytype","| "+ proptype);
map.put("footage", e.getString("house_square_footage")+" Sq.Ft");
map.put("bathroom", "| "+e.getString("bathrooms")+" Bath, ");
map.put("bedroom", e.getString("bathrooms")+" Bedrooms");
map.put("price", "List Price: $"+e.getString("property_price"));
map.put("estimated", "Base Market Value: "+estimate);
//map.put("photos",photo );
mylist.add(map);
}
}catch(JSONException e) {
Toast.makeText(getApplicationContext(),e.getMessage(), Toast.LENGTH_LONG).show();
}
try
{
aURL = new URL(photo);
}
catch (MalformedURLException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
URLConnection conn = null;
try
{
conn = aURL.openConnection();
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
try
{
conn.connect();
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
InputStream is = null;
try
{
is = conn.getInputStream();
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedInputStream bis = new
BufferedInputStream(is,8*1024);
Bitmap bm = BitmapFactory.decodeStream(bis);
//imagemap.put("im",bm);
// mylist1.add(imagemap);
ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main4,
new String[] { "percent","propertyid", "cityname", "statecode", "propertytype", "footage", "bathroom", "bedroom", "price", "estimated" },
new int[] { R.id.percent, R.id.property_id, R.id.city_name, R.id.state_code, R.id.prop_type, R.id.foot, R.id.bath, R.id.bed, R.id.list, R.id.estimat});
setListAdapter(adapter);
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
Toast.makeText(Propertylist.this, "ID '" + o.get("id") + "' was clicked.", Toast.LENGTH_SHORT).show();
}
});
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.icon: //Toast.makeText(this, "You pressed the icon!", Toast.LENGTH_LONG).show();
displaylogin();
break;
case R.id.text: //Toast.makeText(this, "You pressed the text!", Toast.LENGTH_LONG).show();
displayproperty();
break;
// case R.id.icontext: Toast.makeText(this, "You pressed the icon and text!", Toast.LENGTH_LONG).show();
// break;
}
return true;
}
private void displaylogin() {
startActivity(new Intent(this,Changezip.class));
finish();
}
private void displayproperty() {
startActivity(new Intent(this,property.class));
}
}
答案 0 :(得分:4)
请查看此link。希望它可以帮助你。
答案 1 :(得分:2)
您可能想查看GreenDroid库;它使这样的事情变得微不足道。
请注意,您已经询问了之前收到答案的4个问题,但您尚未接受任何答案。这个社区的功能基于接受答案的人,如果你没有开始接受你认为有用的答案,你可能会发现人们不再回答你。