Android programming for a web developer or a quick start for the smallest. Part 3
- Tutorial
Greetings!
This article is a continuation of the part 1 and part 2 that I started .
Important: this lesson is not professional. The author of the lesson is not a specialist in programming for the Android platform. I apologize in advance for unjustified expectations. Since the previous lesson received more positive reviews, I decided to continue.
In the first part I mentioned that the application will be able to log in and display server data. We realize:
For me, authorization is:
This is exactly what I do in a web application. For the client server, I decided to get by with simulating a session using local storage. Requests to the server, receiving and processing responses have already been discussed in Part 2, we will move on to storing the “session”.
SharedPreferences
Values are saved as a pair: name, value. After authorization, we save the data. At the subsequent opening of the application, we will not need to re-authorize, just read the recorded data.
Record:
Reading:
Suppose we have successfully logged in and an Activity has opened for us, which receives a list of chat rooms in the form:
Let's do it:
After all, we get a working list. Now we will process clicking on the list item and transfer the name of the room to another Activity (RoomSetActivity).
In RoomSetActivity, you can read the name of the room like this:
The end.
This article is a continuation of the part 1 and part 2 that I started .
Warning
Important: this lesson is not professional. The author of the lesson is not a specialist in programming for the Android platform. I apologize in advance for unjustified expectations. Since the previous lesson received more positive reviews, I decided to continue.
What are you talking about
In the first part I mentioned that the application will be able to log in and display server data. We realize:
- Login
- Listing of data received from the server
For me, authorization is:
- Database query to verify user availability
- Processing the response and starting the session with successfull
This is exactly what I do in a web application. For the client server, I decided to get by with simulating a session using local storage. Requests to the server, receiving and processing responses have already been discussed in Part 2, we will move on to storing the “session”.
Storing data with Preferences
SharedPreferences
Values are saved as a pair: name, value. After authorization, we save the data. At the subsequent opening of the application, we will not need to re-authorize, just read the recorded data.
Record:
SharedPreferences sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(LOGIN,login.getText().toString() );
ed.putString(PASSORD,password.getText().toString() );
ed.commit();
Reading:
SharedPreferences sPref = getPreferences(MODE_PRIVATE);
String login = sPref.getString(LOGIN, "");
String password = sPref.getString(PASSORD, "");
Reading Items into a List (RoomsActivity)
Suppose we have successfully logged in and an Activity has opened for us, which receives a list of chat rooms in the form:
{"rooms":["room1","room2","room3","room4"]}
Let's do it:
// в объект наш ответ
JSONObject json = new JSONObject(result);
// массив из объекта
JSONArray jsa = json.getJSONArray("rooms");
// находим список
ListView roomsLv = (ListView) findViewById(R.id.roomsLv);
// записываем в строковой массив json массив
String[] StringArray = new String[jsa.length()];
for(int i = 0; i < jsa.length(); i++) {
StringArray[i] = jsa.getString(i);
}
// создаем адаптер
ArrayAdapter<String> adapter = new ArrayAdapter<String>(RoomsActivity.this,android.R.layout.simple_list_item_1, StringArray);
// назначаем списку адаптер
roomsLv.setAdapter(adapter);
After all, we get a working list. Now we will process clicking on the list item and transfer the name of the room to another Activity (RoomSetActivity).
roomsLv.setOnItemClickListener(new OnItemClickListener() {
publicvoidonItemClick(AdapterView<?> parent, View view,int position, long id){
Intent intent = new Intent(RoomsActivity.this, RoomSetActivity.class);
intent.putExtra("roomName", parent.getItemAtPosition(position).toString());
startActivity(intent);
}
});
In RoomSetActivity, you can read the name of the room like this:
String roomName = getIntent().getExtras().getString("roomName");
The end.