2014-04-21 23 views
0

在這裏,這是我的java文件,名爲All_Tickets.java。在Android上設置sharedpreference

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);是否有可能從列表中獲得特定的價值?我不知道如何做到這一點。

+0

你的問題是什麼?確切地說...它關注的'共享偏好設置'或'從列表中獲取價值' – Siva

+0

感謝您的回覆..我想從列表中獲得價值...並且需要在共享首選項中設置該值... – user3556041

回答

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); 
+0

謝謝爲您的答覆..但我需要得到價值形式列表,並希望在共享偏好設置該值.. – user3556041

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()) 
0

請只是閱讀教程how to easily use shared preferences in android獲取。我希望你能從這個鏈接中獲得幫助。

+0

感謝您的答覆..但我有共享偏好的想法..我只想從列表中獲得價值。並且需要在Shared Preference中設置.. – user3556041

+0

ya ..但是如何從列表中獲取值? – user3556041

+0

sh_Pref = getSharedPreferences(「Login Credentials」,MODE_PRIVATE); \t \t toEdit = sh_Pref.edit(); \t \t要編輯。putString(「用戶名」,用戶名); \t \t toEdit.putString(「Password」,password); \t \t toEdit.commit(); 也getString(「密碼」); –

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);

Get it like-getSetting("id", "");

+0

雅...但在Jsonobject中有很多變量...像ID,名稱..並且可能有多個值爲一個變量..如何獲得特定值? – user3556041

+0

對於名稱,使用'setSetting(「name」,name)'和'getSetting(「name」,「」)''。對於每個變量,您可以設置這些值,然後再獲取它們。再次,你可以使用getSetting方法爲變量賦值。 –

+0

okie ..我想你的建議..謝謝... :) – user3556041

相關問題