在列表中创建列表

时间:2014-08-09 14:06:36

标签: java android android-layout android-activity parse-platform

有了支持,我创建了一个填充JSON数据的数组列表。当用户单击数组列表中的项目时,它会将它们带到活动页面,该页面为其提供有关该特定项目的更多信息。

特别是,以下是我的3个问题:

1)在单项目页面中,我添加了一个“添加更多”按钮,我希望在单击该按钮时,该特定项目将被记录,直到选择了数组列表中的3个不同项目。

2)我想更新用户到目前为止在单个项目页面的文本视图中选择了多少项目。

3)我添加了一个确认按钮,但是我想设置一个条件,只有在选择了3个项目后才会进入下一个活动。

4)将用户录制的信息传送到parse.com。每次,用户点击添加更多,它会更新解析用户选择的活动,我可以在我的班级中为活动1,活动2和活动3提供三列。

下面是我的数组代码列表:

public class EventsActivity extends Activity{

    private static final String URL_WEB_SERVICE = "http://dooba.ca/analytics/ed.php";
    private GridView gv;
    private ArrayList<Events_List> container;
    private ArrayList<Events_List> items;
    public Uri list_item_bac;
    public String list_item_name;
    public String list_item_description;
    public String single_list_item_description;
    public String list_item_price;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.events_list_layout);
        gv = (GridView) findViewById(R.id.gridview);
        container = new ArrayList<Events_List>();
        //download JSON
        listDownload();


        GridView s = (GridView) findViewById(R.id.gridview);
        s.setOnItemClickListener(new OnItemClickListener(){

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(EventsActivity.this,EventSingleItemActivity.class);

                intent.putExtra("list_item_name", container.get(position).getList_item_title());
                intent.putExtra("single_list_item_description", container.get(position).getSingle_list_item_description());

                startActivity(intent); //start Activity
            }
        });
    }
    public void listDownload(){
        RequestQueue volley = Volley.newRequestQueue(this);
        JsonObjectRequest json = new JsonObjectRequest(Method.GET, URL_WEB_SERVICE, null, ResponseListener(), ErrorListener());
        volley.add(json);
    }

    private Response.Listener<JSONObject> ResponseListener() {
        return new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    //your JSON Array
                    JSONArray array = response.getJSONArray("list_item");
                    for(int i = 0; i < array.length(); i++){
                        container.add(convertirAnuncio(array.getJSONObject(i)));
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                gv.setAdapter(new AdapterEvents(getApplicationContext(),container));
                }
            };
        };


    private Response.ErrorListener ErrorListener() {
        return new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) { }
        };
    }

    //object JSON
    private final Events_List convertirAnuncio(JSONObject obj) throws JSONException {
        long id = obj.getLong("id"); //id 
        String list_item_name = obj.getString("list_item_name"); 
        String list_item_description = obj.getString("list_item_description");
        String single_list_item_description = obj.getString("single_list_item_description");
        Uri uri = Uri.parse(obj.getString("list_item_bac"));
        return new Events_List(id,single_list_item_description,list_item_name,list_item_description,list_item_price, uri);
    }
}

以下是我的单项目点击页面

public class EventSingleItemActivity extends Activity {

    // Declare Variables
    String list_item_name;
    String list_item_description;
    String list_item_price;
    String single_list_item_description;




    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_events_single_item);





        Intent i = getIntent();
        list_item_name = i.getStringExtra("list_item_name");
        single_list_item_description = i.getStringExtra("single_list_item_description");

        TextView txtname = (TextView) findViewById(R.id.name);
        TextView txtsdescription = (TextView) findViewById(R.id.sdescription);

        // Set results to the TextViews
        txtname.setText(list_item_name);
        txtsdescription.setText(single_list_item_description);


        Button mConfirm2 = (Button)findViewById(R.id.bConfirm2);
        mConfirm2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                EventSingleItemActivity.this.startActivity(new Intent(EventSingleItemActivity.this, MatchingActivity.class));
            }
        });


        Button mcancel = (Button)findViewById(R.id.bRemove);
        mcancel.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                EventSingleItemActivity.this.startActivity(new Intent(EventSingleItemActivity.this, EventsActivity.class));
            }
        });


    }
}

我查看了以下教程: http://theopentutorials.com/tutorials/android/listview/android-multiple-selection-listview/ 但这并不是我想要实现的目标。

任何帮助都会有很大帮助。 在此先感谢 一切顺利。

1 个答案:

答案 0 :(得分:0)

的ArrayList&LT; ArrayList&gt; yourVar = new ArrayList&lt; ArrayList&gt;();

同样适用于列表,你也可以使用2d数组,但这些都很烦人。