2013-07-03 2 views
1

Я пытаюсь разработать свое первое приложение, но мне нужна помощь в чем-то. Итак, чтобы получить доступ к моему приложению, вам необходимо войти в систему, введя свое собственное имя пользователя и пароль. У моего приложения есть скользящее меню слева, я использую библиотеку jfeinstein10. Теперь я хочу, чтобы в первой строке этого меню было проигнорировано имя пользователя пользователя, поэтому вы понимаете, что это динамическая строка.Хранение динамических данных на ярлыке

Это XML-код моей строки:

<item name="list_item_municipio_id" type="slidingmenu" /> 
<item name="list_item_municipio_label" type="slidingmenu">&quot;Municipio&quot;</item> 
<item name="list_item_municipio_icon " type="slidingmenu">"@drawable/iconamunicipio"</item> 

Теперь отображается "Municipio" с <item name="list_item_municipio_label". Я читал, что строки статичны, и что возможное решение использует SharedPreferences. Можете ли вы привести мне пример? Потому что я не понимаю, как сохранить имя пользователя в SharedPreferences. Это код login.java:

package com.baruckis.SlidingMenuImplementation; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.Activity; 

import android.app.ProgressDialog; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 

import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class Login extends Activity implements OnClickListener{ 
public static final String PREFS_NAME = "LoginPrefs"; 
private EditText user, pass; 
private Button mSubmit, mRegister; 
private ProgressDialog pDialog; 

// Attivo una connessione JSON 
JSONParser jsonParser = new JSONParser(); 

//Collego un file php sul mio server 
private static final String LOGIN_URL = "http://provasitosaronno.dnshosting.it/php/login.php"; 

//JSON gestisce le risposte fornite dallo script php 
private static final String TAG_SUCCESS = "success"; 
private static final String TAG_MESSAGE = "message"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    if (settings.getString("logged", "").toString().equals("logged")) { 
     Intent i = new Intent(Login.this, SlidingMenuFromClassActivity.class); 
     finish(); 
     startActivity(i); 
    } 

    //Imposto le due variabili user e pass 
    user = (EditText)findViewById(R.id.username); 
    pass = (EditText)findViewById(R.id.password); 

    //Collego i due pulsanti del login e del register 
    mSubmit = (Button)findViewById(R.id.login); 
    mRegister = (Button)findViewById(R.id.register); 

    //Aggiungo la funzione del clicklistener 
    mSubmit.setOnClickListener(this); 
    mRegister.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.login: 
      new AttemptLogin().execute(); 
     break; 
    case R.id.register: 
      Intent i = new Intent(this, Register.class); 
      startActivity(i); 
     break; 

    default: 
     break; 
    } 
} 

class AttemptLogin extends AsyncTask<String, String, String> { 

    /** 
    * Before starting background thread Show Progress Dialog 
    * */ 
    boolean failure = false; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(Login.this); 
     pDialog.setMessage("Accesso in corso..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(true); 
     pDialog.show(); 
    } 

    @Override 
    protected String doInBackground(String... args) { 
     // TODO Auto-generated method stub 

     int success; 
     String username = user.getText().toString(); 
     String password = pass.getText().toString(); 
     try { 
      //Aggiungo i parametri generati dalle variabili 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("username", username)); 
      params.add(new BasicNameValuePair("password", password)); 

      Log.d("request!", "starting"); 
      // Ottengo i risultati dalla connessione http 
      JSONObject json = jsonParser.makeHttpRequest(
        LOGIN_URL, "POST", params); 

      //Aspetto una risposta da JSON 
      Log.d("Login attempt", json.toString()); 

      //Se il tutto avviene... 
      success = json.getInt(TAG_SUCCESS); 
      if (success == 1) { 

       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
       SharedPreferences.Editor editor = settings.edit(); 
       editor.putString("logged", "logged"); 
       editor.commit(); 

       Log.d("Login Successful!", json.toString()); 
       Intent i = new Intent(Login.this, SlidingMenuFromClassActivity.class); 
       finish(); 
       startActivity(i); 
       return json.getString(TAG_MESSAGE); 
      }else{ 
       Log.d("Login Failure!", json.getString(TAG_MESSAGE)); 
       return json.getString(TAG_MESSAGE); 

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

     return null; 

    } 
    /** 
    * After completing background task Dismiss the progress dialog 
    * **/ 
    protected void onPostExecute(String file_url) { 
     //funzione dismiss 
     pDialog.dismiss(); 
     if (file_url != null){ 
      Toast.makeText(Login.this, file_url, Toast.LENGTH_LONG).show(); 
     } 

    } 

} 

}

ответ

2

Ниже приведен код, как вы можете сохранить информацию SharedPreference.

SharedPreferences settings = this.getActivity().getSharedPreferences("MyApp", 0); 
SharedPreferences.Editor editor = settings.edit();  
String user = "foobar"; 
editor.putString("user", user); 
editor.commit(); 
+0

Спасибо за этот полезный код, теперь я хочу знать, как поместить эту строку в мою строку в скользящем меню. Я использую XML-файл? Или что? – Peppegiuseppe

+0

Ну, парень, давай объясним, как это сделать! :) – Peppegiuseppe

Смежные вопросы