在Android上设置sharedpreference

时间:2014-04-21 11:08:17

标签: android

这里,我的java文件名为 All_Tickets.java。

 public class All_Tickets extends Activity
{

    private TicketlistAsync ticketlistaync;
    private OnItemClickListener listener;
    List<Myevent> myevents;
    List<Myevent> myevents_searchable;
    JSONArray contacts = null;
    // static JSONArray tickets = null;
    boolean asyncrun;
    Button create_tkt;
    static Button btn;
    JSONObject json;
    JSONArray tickets = null;

    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dashboard);
        myevents = new ArrayList<Myevent>();
        myevents_searchable = new ArrayList<Myevent>();
        listview = (ListView)findViewById(R.id.events);
        create_tkt=(Button)findViewById(R.id.create_new_tkt);
        btn=(Button)findViewById(R.id.btn_edit_buy);
        ticketlistaync = new TicketlistAsync();
        ticketlistaync.execute((Void) null);
        listview.setOnItemClickListener(listener);
        Log.e("tickelist_oncreate","construct");
        Log.e("CHECKN_CONSTANT_ID",Constants.id);
        Log.e("CHECKING_USER_ID",EventDetails.user_id);

    if(Constants.id.equals(EventDetails.user_id))
    {
        create_tkt.setOnClickListener(new View.OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                Log.e("Hello","Testing");
                Intent intent=new Intent(All_Tickets.this,AddNewTicket.class);
                startActivity(intent);  

            }
        });
    }
    else
    {

        create_tkt.setVisibility(View.GONE);

    }
    }

    private class TicketlistAsync extends AsyncTask<Void, Void, Object> 
    {



        private ProgressDialog pdia;
        protected void onPreExecute() 
        {
                super.onPreExecute();
                pdia = new ProgressDialog(All_Tickets.this);
                pdia.setMessage("Loading...");
                pdia.show();

        }

        @Override
        protected Object doInBackground(Void... params) 
        {

            // TODO Auto-generated method stub
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(Constants.BASE_URL
                + "mobile_logins/event_tickets_details");
            try 
            {
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("event_id",EventDetails.event_id));
                nameValuePairs.add(new BasicNameValuePair("user_id",Constants.id));
                Log.e("Namevaluepairs_Test", nameValuePairs.toString());
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                Log.e("Test","Test");
                HttpResponse response = httpclient.execute(httppost);
                Log.e("Test1","Test");
                String response1 = EntityUtils.toString(response.getEntity());

                Log.e("test",response1);
                json=new JSONObject(response1);
                tickets = json.getJSONArray("tickets_info");
                String post=json.toString();
                Log.e("ticketlist_TICKETS",post);
                return json;

            }

            catch (Exception e) 
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return e;

            }




        }
        protected void onPostExecute(Object jsobj) 
        {
            pdia.dismiss();

                Log.e("Ticket_list_onpostexecute","postexecute");

             Dataadapter_FreeTicket adapter=new Dataadapter_FreeTicket(All_Tickets.this,R.layout.list_row_ticket,tickets);
             Log.e("TEST_TEST","Testing");
             listview.setAdapter(adapter);


                 String json_res=json.toString();
                 Log.e("json_rese",json_res);



             createList();




                 Log.e("onpostexecute1","postexecute");

                 if (json instanceof JSONObject) 
                 {
                        asyncrun = true;
                        //eventsadapter.notifyDataSetChanged();
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
                        {

                        }
                } 

            }




        }

    private void createList() 
    {

        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                // TODO Auto-generated method stub
                SharedPreferences sp = getSharedPreferences("tickets", 0);
                SharedPreferences.Editor ed = sp.edit();






            }
        });

    }

    }

这里,我的适配器名为 Dataadapter_FreeTicket.java

 public class Dataadapter_FreeTicket extends BaseAdapter
{

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
    {
        // TODO Auto-generated method stub
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        ViewHolder holder = new ViewHolder();




        if (convertView == null) 
        {
            convertView = inflater.inflate(R.layout.list_row_ticket, null);
            holder.textview = (TextView) convertView
                    .findViewById(R.id.ticket_name);
            holder.textview1 = (TextView) convertView
                    .findViewById(R.id.ticket_start_date);
            holder.textview2 = (TextView) convertView
                    .findViewById(R.id.ticket_end_date);
            holder.textview3=(TextView)convertView
                    .findViewById(R.id.ticket_price);
            holder.textview4=(TextView)convertView
                    .findViewById(R.id.ticket_qty);
            holder.btn=(Button)convertView
                    .findViewById(R.id.btn_edit_buy);

            convertView.setTag(holder);
        } 
        else 
        {
            holder = (ViewHolder) convertView.getTag();
        }


        JSONObject temp = null;


        try {
            temp = (JSONObject) values.get(position);


            //.replace("null", " ");


            if(temp.getInt("free")==1)
            {



                    String title=temp.get("free_ticket_name").toString();
                    //String Ctitle = title.substring(0, 10);
                    holder.textview.setText(title);
                    String tkt_s_date=temp.get("free_start_sale").toString();
                    String s_date=Constants.formatteddate(tkt_s_date);
                    holder.textview1.setText(s_date);
                    String tkt_e_date=temp.get("free_end_sale").toString();
                    String e_date=Constants.formatteddate(tkt_e_date);
                    holder.textview2.setText(e_date);
                    holder.textview3.setText(temp.get("free_qty").toString());
                    holder.textview4.setVisibility(View.GONE);
            }
            else if(temp.getInt("paid")==1)
            {

                String title=temp.get("paid_ticket_name").toString();
                //String Ctitle = title.substring(0, 10);
                holder.textview.setText(title);
                String tkt_s_date=temp.get("paid_start_sale").toString();
                String s_date=Constants.formatteddate(tkt_s_date);
                holder.textview1.setText(s_date);
                String tkt_e_date=temp.get("paid_end_sale").toString();
                String e_date=Constants.formatteddate(tkt_e_date);
                holder.textview2.setText(e_date);
                holder.textview3.setText(temp.get("paid_qty").toString());
                String p=temp.get("paid_price").toString();
                holder.textview4.setText(p);

            }
            else if(temp.getInt("donation")==1)
            {

                String title=temp.get("donation_ticket_name").toString();
                //String Ctitle = title.substring(0, 10);
                holder.textview.setText(title);
                String tkt_s_date=temp.get("donation_start_sale").toString();
                String s_date=Constants.formatteddate(tkt_s_date);
                holder.textview1.setText(s_date);
                String tkt_e_date=temp.get("donation_end_sale").toString();
                String e_date=Constants.formatteddate(tkt_e_date);
                holder.textview2.setText(e_date);
                String q=temp.get("donation_qty").toString();
                holder.textview3.setText(q);
                String p=temp.get("donation_price").toString();
                holder.textview4.setText(p);
            }
                    Log.e("con_id",Constants.id);
                    Log.e("e_d_id",EventDetails.user_id);
                    if(Constants.id.equals(EventDetails.user_id))
                    {
                        holder.btn.setText("EDIT");
                        holder.btn.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View v) 
                            {
                                Log.e("METH_executing...","METH_executing...");
                                context.startActivity(new Intent(context,Delete_Ticket.class));

                            }
                        });
                    }
                    else
                    {
                        holder.btn.setText("BUY");
                    }

                    Log.e("Title",temp.get("free_ticket_name").toString());
                    Log.e("Venue",temp.get("free_description").toString());
                    Log.e("Date",temp.get("free_start_sale").toString());
                    ticket_id=temp.get("id").toString();
                    Log.e("Ticket ID",ticket_id);
                    convertView.setId(position);

        } catch (JSONException e) {
            e.printStackTrace();
        }
        return convertView;
    }

    private class ViewHolder {
        public TextView textview;
        public TextView textview1;
        public TextView textview2;
        public TextView textview3;
        public TextView textview4;
        public Button btn;

    }
    }

在这里,我想在点击按钮时设置SharedPreference,我想使用在doInBackground方法中返回的值形式JSON对象。手段,我想这样做.. String t_id=json.getString(id);是否有可能从列表中获得特定价值?我不明白该怎么做。

4 个答案:

答案 0 :(得分:1)

这是您的 SharedPreferences 类,它是静态的,因此您可以从每项活动中获取。

public class SharedPref {

    public static void setDefaults(String key, String value, Context context) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString(key, value);
        editor.commit();
    }

    public static String getDefaults(String key, Context context) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        return preferences.getString(key, null);
    }

}

这就是您要从列表中设置和获取信息的方式。

保存到SharedPreferences

    SharedPref.setDefaults("your_tag", "value_from_list", context);

从SharedPreferences获取

SharedPref.getDefaults("your_tag", getApplicationContext())

答案 1 :(得分:0)

//above on create

    SharedPreferences file;
    SharedPreferences.Editor edit;

//after setcontent view();

    file = this.getSharedPreferences("Ryans_play", MODE_WORLD_WRITEABLE);

//setvalue to sharedpreferences ..write this inside button click event


       SharedPreferences.Editor ed = file.edit();
    ed.putInt("diflag", 0);
    ed.commit();


//getfrom sharedprefrences

     file.getInt("diflag", 0);

答案 2 :(得分:0)

请阅读教程how to easily use shared preferences in android。我希望你能从这个链接中获得帮助。

答案 3 :(得分:0)

Is it possible to get particular value from list?

是的,可以使用SharedPreferences

使用以下方法获取和设置首选项---

public void setSetting(String key, String value) {

        if(getActivity() != null)
        {
            SharedPreferences settings = getActivity().getSharedPreferences("tickets", 0);
            SharedPreferences.Editor editor = settings.edit();
            editor.putString(key, value);

            // Commit the edits!
            editor.commit();
        }
    }

    public String getSetting(String key, String def) {

        try
        {
        SharedPreferences settings = getActivity().getSharedPreferences("tickets", 0);
        return settings.getString(key, def);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

        return "";
    }

所以你的价值是String t_id=json.getString(id);

将其设置为 - setSetting("id", t_id);

好像 - getSetting("id", "");