OnListItemClick将其存储到数组并将该数组传递给使用intent的下一个活动并将所有选定项目显示到Listview中
我很抱歉打扰你...但我已经在SO上搜索了我的问题但未能解决它...OnListItemClick将其存储到数组并将该数组传递给使用intent的下一个活动并将所有选定项目显示到Listview中
计划
我已经......我想填充凌空一个ListView当ListView控件的任何项目的用户点击,它都被选择(用户可以选择多个列表项),然后点击按钮,所有的所选项目显示在我的CartActivity的listView中。
(Actully,我工作的购物车类活动)
问题
我使用的ArrayList(myCartList)和onListItemClickListener方法,我将喜欢点击的项目的ArrayList(myCartList) :myCartList.add(getItem(position));
此按钮后单击该阵列将被传递到CartActivity和ListView中有显示...
代码如下
import android.app.ProgressDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class grabedDb extends AppCompatActivity {
EditText grabResults;
Button cart;
String url = "http://MY_LINK_HERE";
ArrayList<HashMap<String, String>> Item_List;
ProgressDialog PD;
SimpleAdapter adapter;
ArrayList stock_list;
// JSON Node names
public static final String ITEM_ID = "name";
public static final String ITEM_NAME = "rate";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grabed_db);
grabResults = (EditText) findViewById(R.id.grabed_et_search);
cart = (Button) findViewById(R.id.grabed_btn_showCart);
grabResults.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//perform Search
grabedDb.this.adapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
Item_List = new ArrayList<HashMap<String, String>>();
PD = new ProgressDialog(this);
PD.setMessage("Please Wait...");
PD.setCancelable(false);
ReadDataFromDB();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
private void ReadDataFromDB() {
PD.show();
JsonObjectRequest jreq = new JsonObjectRequest(Request.Method.GET, url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
int success = response.getInt("success");
if (success == 1) {
JSONArray ja = response.getJSONArray("mydrugs");
for (int i = 0; i < ja.length(); i++) {
JSONObject jobj = ja.getJSONObject(i);
HashMap<String, String> item = new HashMap<String, String>();
item.put(ITEM_ID, jobj.getString(ITEM_ID));
item.put(ITEM_NAME,
jobj.getString(ITEM_NAME));
Item_List.add(item);
} // for loop ends
String[] from = { ITEM_ID, ITEM_NAME };
int[] to = { R.id.item_name, R.id.item_id };
adapter = new SimpleAdapter(
getApplicationContext(), Item_List,
R.layout.list_items, from, to);
ListView myList = (ListView) findViewById(R.id.list_list_listView);
myList.setAdapter(adapter);
PD.dismiss();
myList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
stock_list.add(Item_List.get(position));
Toast.makeText(getApplicationContext() , "Added To Cart " + Item_List.get(position), Toast.LENGTH_LONG).show();
cart.setVisibility(View.VISIBLE);
cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent modify_intent = new Intent(grabedDb.this,
updatedata.class);
modify_intent.putStringArrayListExtra("stock_list", stock_list);
startActivity(modify_intent);
}
});
}
});
} // if ends
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
PD.dismiss();
}
});
// Adding request to request queue
MyApplication.getInstance().addToReqQueue(jreq);
}
}
让您的项目Parcelable。然后通过setExtra()将整个数组作为Parcelable传递给intent,并通过getExtra()检索它。
感谢您的贡献...请问我为它显示代码...它将如何工作...请参阅上面的代码并提出一些建议...谢谢亲爱的... –
请参阅http:// stackoverflow。 com/questions/2139134/how-to-send-an-object-from-one-android-activity-to-another-using-intents – lionscribe
亲爱的......有太多复杂的代码,也有问题指向评论。 。请根据我上面给出的代码给我演示...提前致谢...请给我sm代码示例我的问题... –
你好替换代码
myList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
stock_list.add(Item_List.get(position));
Toast.makeText(getApplicationContext() , "Added To Cart " + Item_List.get(position), Toast.LENGTH_LONG).show();
cart.setVisibility(View.VISIBLE);
cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent modify_intent = new Intent(grabedDb.this,
updatedata.class);
modify_intent.putStringArrayListExtra("stock_list", stock_list);
startActivity(modify_intent);
}
});
}
});
与此,
myList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
stock_list.add(Item_List.get(position));
Toast.makeText(getApplicationContext() , "Added To Cart " + Item_List.get(position), Toast.LENGTH_LONG).show();
cart.setVisibility(View.VISIBLE);
}
});
cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent modify_intent = new Intent(grabedDb.this,
updatedata.class);
modify_intent.putStringArrayListExtra("stock_list", stock_list);
startActivity(modify_intent);
}
});
希望它会工作.. !!
显示你试过的东西 –
你面临什么问题?用问题清除 –
@madhuriHR ...亲爱的我在那里添加了我的代码...在我的问题中,当我将点击项添加到新数组列表时,我的应用程序崩溃了... –