伙计我正在研究一个Android项目,当我在一个活动中使用两个Hashmap arraylist而不是我的应用程序崩溃。我正在处理它过去两天但问题仍然存在。我尝试了所有解决方案和调试程序,并深入研究所有步骤。
public static ArrayList<HashMap<String, String>> arrayList;
public static ArrayList<HashMap<String, String>> arrayList1;
arraylist1在我评论arraylist之前没有工作。我无法理解这个问题,请提出任何解决方案。
java code ....
public class Dashboard extends Activity {
public static Dashboard_Adapter adapter;
public static list_adapter list_adapter;
ListView listview;
ListView Listnewpost;
JSONObject jsonObject;
public static final String like_count = "like_count";
public static final String name1 = "name";
String like;
public static String name11;
public static ArrayList<HashMap<String, String>> arrayList;
public static ArrayList<HashMap<String, String>> arrayList1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dashborad);
listview = (ListView) findViewById(R.id.lvcomment);
Listnewpost= (ListView) findViewById(R.id.lvShowPost);
arrayList = new ArrayList<>();
arrayList1= new ArrayList<>();
new dash_board().execute();
}
private class dash_board extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(Dashboard.this);
progressDialog.setMessage("Please wait while your request is in progress.....");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
int success;
JSONObject response;
int returnCode;
//String result = "{\"Response\":{\"ReturnCode\":200,\"ReturnMessage\":\"Information Successfully Retrieved\",\"ReturnData\":null,\"ReturnClass\":{\"PRO_ID\":\"11111111-1111-1111-1111-111111111111\",\"PRO_FirstName\":\"SILVER\",\"PRO_LastName\":\"HIYO\"},\"FriendlyErrorMessage\":null}}";
String data1 = "[{this is a flat json}];
try {
Log.d("hy one ","two");
JSONArray jr=new JSONArray(data);
HashMap<String, String> arre;
for (int i=0;i<jr.length();i++) {
jsonObject = jr.getJSONObject(i);
like = jsonObject.getString(like_count);
arre = new HashMap<>();
arre.put("like_count", like);
arrayList1.add(arre);
}
JSONArray jsonArray3=jsonObject.getJSONArray("comments");
HashMap<String, String> arr;
for(int j=0;j<jsonArray3.length();j++){
arr = new HashMap<>();
JSONObject jsonObject3 = jsonArray3.getJSONObject(j);
name11=jsonObject3.getString(name1);
Log.d("name value",name11);
arr.put("name",name11);
arrayList.add(arr);
}
Log.d("arraylist", String.valueOf(arrayList1.get(0)));
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
progressDialog.dismiss();
list_adapter= new list_adapter(Dashboard.this,arrayList1);
adapter=new Dashboard_Adapter(Dashboard.this,arrayList);
listview.setAdapter(adapter);
Listnewpost.setAdapter(list_adapter);
}
}
答案 0 :(得分:0)
做这样的事
ArrayList<HashMap<String, String>> arrayList = new ArrayList<>();
HashMap<String, String> stringStringHashMap = new HashMap<>();
stringStringHashMap.put("key1","Hello 1");
stringStringHashMap.put("key2","Hello 2");
stringStringHashMap.put("key3","Hello 3");
arrayList.add(stringStringHashMap);
ArrayList<HashMap<String, String>> arrayList1 = new ArrayList<>();
HashMap<String, String> stringStringHashMap1 = new HashMap<>();
stringStringHashMap1.put("key1","Hello 1");
stringStringHashMap1.put("key2","Hello 2");
stringStringHashMap1.put("key3","Hello 3");
arrayList1.add(stringStringHashMap1);
答案 1 :(得分:0)
在onCreate()方法上面创建Hashmap,而不是在onCreate()方法中创建(即,使hashmap&#39全局)。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateContinentsDropDownList();
}
lblCheckEmail.Visible = false;
}
private void PopulateContinentsDropDownList()
{
DataSet ds = Data.spGetCountries();
ddlCountry.DataSource = ds;
ddlCountry.DataTextField = "CountryName";
ddlCountry.DataValueField = "Country_Id";
ddlCountry.DataBind();
ListItem liCountry = new ListItem("Select Country");
ddlCountry.Items.Insert(0, liCountry);
ListItem liState = new ListItem("Select State");
ddlState.Items.Insert(0, liState);
ListItem liCity = new ListItem("Select City");
ddlCity.Items.Insert(0, liCity);
ListItem liCountryCode = new ListItem("Country Code");
ddlCountrycode.Items.Insert(0, liCountryCode);
ddlState.Enabled = false;
ddlCity.Enabled = false;
}
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlCountry.SelectedValue == "")
{
ddlState.SelectedIndex = 0;
ddlCity.SelectedIndex = 0;
ddlState.Enabled = false;
ddlCity.Enabled = false;
ddlCountrycode.SelectedIndex = 0;
ddlCountrycode.Enabled = false;
}
else
{
ddlState.Enabled = true;
DataSet ds = Data.spGetStateByCountryId(Convert.ToInt32(ddlCountry.SelectedValue));
ddlState.DataSource = ds;
ddlState.DataTextField = "StateName";
ddlState.DataValueField = "State_Id";
ddlState.DataBind();
DataSet ds1 = Data.spGetCountrycode(Convert.ToInt32(ddlCountry.SelectedValue));
ddlCountrycode.DataSource = ds1;
ddlCountrycode.DataTextField = "CountryCode";
ddlCountrycode.DataValueField = "Country_Id";
ddlCountrycode.DataBind();
//ddlCity.SelectedIndex = 0;
//ddlCity.Enabled = false;
}
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlState.SelectedValue == "")
{
ddlCity.SelectedIndex = 0;
ddlCity.Enabled = false;
}
else
{
ddlCity.Enabled = true;
DataSet ds = Data.spGetCityByStateId(Convert.ToInt32(ddlState.SelectedValue));
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "City_Id";
ddlCity.DataBind();
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
DataSet ds = Data.spCheckEmail(txtEmail.Text);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["Email_Id"].ToString() == txtEmail.Text)
{
lblCheckEmail.Visible = true;
lblCheckEmail.Text = "Email id already exists , please enter another email id.";
}
else
{
lblCheckEmail.Text = "";
lblCheckEmail.Visible = false;
}
}
else
{
Data objpro = new Data();
string a = ddlYear.SelectedValue;
string b = ddlMonth.SelectedValue;
string c = ddlDate.SelectedValue;
string DateofBirth = ddlDate.SelectedValue + "/" + ddlMonth.SelectedValue + "/" + ddlYear.SelectedValue;
objpro.DOB = DateofBirth;
objpro.Email_Id = txtEmail.Text;
objpro.Password = txtPassword.Text;
objpro.Acc_Currency = ddlCurrency.SelectedValue;
objpro.FirstName = txtFirstName.Text;
objpro.LastName = txtLastName.Text;
objpro.Gender = ddlGender.SelectedValue;
objpro.Address1 = txtAddress1.Text;
objpro.Address2 = txtAddress2.Text;
objpro.Country = ddlCountry.SelectedItem.Text;
objpro.Region_State = ddlState.SelectedItem.Text;
objpro.City = ddlCity.SelectedItem.Text;
objpro.PostalCode = txtPostalCode.Text;
objpro.Phone_Extension = ddlCountrycode.SelectedValue;
objpro.PhoneNo = txtPhoneno.Text;
if (Request.QueryString["Account_Id"] != null)
{
ID = Request.QueryString["Account_Id"];
}
else
{
ID = "0";
}
objpro.Account_Id = Convert.ToInt32(ID);
int k = Data.CustomerInsert(objpro);
Random randno = new Random();
int cc = randno.Next(000000, 999999);
string Uniqueid = "U" + cc;
if (k != -1)
{
Data.spStoreUniqueId(k, Uniqueid);
}
Session["UniqueId"] = Uniqueid;
Session["Email"] = txtEmail.Text;
Page.ClientScript.RegisterStartupScript(Page.GetType(), "alert", "alert('Data Saved Successfully');window.location='JoininForm.aspx';", true);
Response.Redirect("Welcome.aspx");
}
}
protected void txtEmail_TextChanged(object sender, EventArgs e)
{
DataSet ds = Data.spCheckEmail(txtEmail.Text);
if (ds.Tables[0].Rows.Count > 0)
{
if (ds.Tables[0].Rows[0]["Email_Id"].ToString() == txtEmail.Text)
{
lblCheckEmail.Visible = true;
lblCheckEmail.Text = "Email id already exists , please enter another email id.";
}
}
}