如何将自定义列表视图的点击次数添加到自定义操作栏?

时间:2015-05-18 03:26:30

标签: java android android-layout android-activity

我有自定义列表视图和自定义操作栏(图像按钮,文本视图)。当我单击自定义列表视图时,单击的数量将添加到自定义操作栏文本视图。

package com.firstchoicefood.phpexpertgroup.firstchoicefoodin;
import android.app.ActionBar;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.AsyncTask;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AbsListView;
import android.os.Bundle;
import android.util.Log;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;

import com.firstchoicefood.phpexpertgroup.firstchoicefoodin.adapter.ListAdapterAddItems;
import com.firstchoicefood.phpexpertgroup.firstchoicefoodin.bean.ListModel;
import com.firstchoicefood.phpexpertgroup.firstchoicefoodin.json.JSONfunctions;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.URLEncoder;
import java.util.ArrayList;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class DetaisRESTActivity extends Activity {
    String valueid,valueid1,valuename;

   public int count=0;
    JSONObject jsonobject;
    JSONArray jsonarray;
    public int listViewClickCounter=0;

    ListAdapterAddItems adapter;

    String restaurantmenuname,rastaurantname;

    ProgressDialog mProgressDialog;
    ArrayList<ListModel> arraylist;
    public static String RASTAURANTNAMEDETAILS = "RestaurantPizzaItemName";
    public static String RASTAURANTRUPPEES = "RestaurantPizzaItemPrice";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.activity_detais_rest);
     //   getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar);
        ActionBar actionBar = getActionBar();

        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ff0000")));

        LayoutInflater mInflater = LayoutInflater.from(this);

        View mCustomView = mInflater.inflate(R.layout.titlebar, null);
       TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.textView123456789);
        Toast.makeText(DetaisRESTActivity.this,listViewClickCounter, Toast.LENGTH_LONG).show();
        mTitleTextView.setText(listViewClickCounter);

        ImageButton imageButton = (ImageButton) mCustomView
                .findViewById(R.id.imageButton2);
        imageButton.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(), "Refresh Clicked!",
                        Toast.LENGTH_LONG).show();
                Intent i=new Intent(DetaisRESTActivity.this,QuentityActivity.class);
                startActivity(i);
            }
        });

        actionBar.setCustomView(mCustomView);
        actionBar.setDisplayShowCustomEnabled(true);
        Intent intent = getIntent();
        // get the extra value
        valuename = intent.getStringExtra("restaurantmenuname");
        valueid = intent.getStringExtra("restaurantmenunameid");
        valueid1 = intent.getStringExtra("idsrestaurantMenuId5");

        Log.i("valueid",valueid);
        Log.i("valuename",valuename);
        Log.i("valueid1",valueid1);

        new DownloadJSON().execute();
    }

    // DownloadJSON AsyncTask
    private class DownloadJSON extends AsyncTask<Void,Void,Void> {

        @Override

        protected void onPreExecute() {
            super.onPreExecute();
            // Create a progressdialog
            mProgressDialog = new ProgressDialog(DetaisRESTActivity.this);
            // Set progressdialog title
            mProgressDialog.setTitle("Android JSON Parse Tutorial");
            // Set progressdialog message
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            // Show progressdialog
            mProgressDialog.show();
            Toast.makeText(DetaisRESTActivity.this, "Successs", Toast.LENGTH_LONG).show();
        }

        @Override
        protected Void doInBackground(Void... params) {
            // Create an array
            arraylist = new ArrayList<ListModel>();
            // Retrieve JSON Objects from the given URL address
            //  Log.i("123",value1);
            jsonobject = JSONfunctions.getJSONfromURL("http://firstchoicefood.in/fcfapiphpexpert/phpexpert_restaurantMenuItem.php?r=" + URLEncoder.encode(valuename) + "&resid=" + URLEncoder.encode(valueid1) + "&RestaurantCategoryID=" + URLEncoder.encode(valueid) + "");

            try {

                // Locate the array name in JSON
                jsonarray = jsonobject.getJSONArray("RestaurantMenItems");
                Log.i("1234",""+jsonarray);

                for (int i = 0; i < jsonarray.length(); i++) {

                    jsonobject = jsonarray.getJSONObject(i);

                     ListModel sched = new ListModel();
                    sched.setProductName(jsonobject.getString("RestaurantPizzaItemName"));
                    sched.setPrice(jsonobject.getString("RestaurantPizzaItemPrice"));

                    arraylist.add(sched);

                }
            } catch (JSONException e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {
            // Locate the listview in listview_main.xml
     final ListView   listview = (ListView) findViewById(R.id.listViewdetails);

            adapter = new ListAdapterAddItems();

            listview.setAdapter(adapter);
            // Close the progressdialog
            mProgressDialog.dismiss();

            listview.setOnItemClickListener(new AdapterView.OnItemClickListener()
            {
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
                {

                    // Get Person "behind" the clicked item
                    ListModel p =(ListModel)listview.getItemAtPosition(position);
                    // Log the fields to check if we got the info we want
                    Log.i("SomeTag", "Persons: " + p.getCount());
                    Log.i("SomeTag", "Persons name: " + p.getProductName());
                    Log.i("SomeTag", "Ruppees: " + p.getPrice());

                    count++;
                    String countString=String.valueOf(count);
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "Item " + (position + 1),
                            Toast.LENGTH_SHORT);
                    toast.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
                    toast.show();

                   Toast.makeText(getBaseContext(),
                            countString, Toast.LENGTH_LONG).show();

                }
            });
        }
    }

    class ListAdapterAddItems extends ArrayAdapter<ListModel>
    {
        ListAdapterAddItems(){
            super(DetaisRESTActivity.this,android.R.layout.simple_list_item_1,arraylist);
            //imageLoader = new ImageLoader(MainActivity.this);
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ViewHolder holder;
            if(convertView == null){
                LayoutInflater inflater = getLayoutInflater();
                convertView = inflater.inflate(R.layout.cartlistitem, null);
                holder = new ViewHolder(convertView);
                convertView.setTag(holder);
            }else{
                holder = (ViewHolder)convertView.getTag();
            }
            holder.populateFrom(arraylist.get(position));
            return convertView;
        }
    }

    class ViewHolder {
        public TextView restaurantname = null;
        public TextView ruppees = null;


        ViewHolder(View row) {
            restaurantname = (TextView) row.findViewById(R.id.rastaurantnamedetailsrestaurant);
            ruppees = (TextView) row.findViewById(R.id.rastaurantcuisinedetalsrestaurant);

        }

        // Notice we have to change our populateFrom() to take an argument of type "Person"
        void populateFrom(ListModel r) {
            restaurantname.setText(r.getProductName());
            ruppees.setText(r.getPrice());

        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_detais_rest, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.

        return super.onOptionsItemSelected(item);
    }
}

0 个答案:

没有答案
相关问题