001.
package
com.example.thaicreate;
002.
003.
import
java.net.MalformedURLException;
004.
import
java.util.List;
005.
006.
import
android.app.Activity;
007.
import
android.app.AlertDialog;
008.
import
android.content.Context;
009.
import
android.os.Bundle;
010.
import
android.util.Log;
011.
import
android.view.LayoutInflater;
012.
import
android.view.Menu;
013.
import
android.view.View;
014.
import
android.view.ViewGroup;
015.
import
android.widget.ArrayAdapter;
016.
import
android.widget.ListView;
017.
import
android.widget.TextView;
018.
import
android.widget.Toast;
019.
020.
import
com.microsoft.windowsazure.mobileservices.MobileServiceClient;
021.
import
com.microsoft.windowsazure.mobileservices.MobileServiceTable;
022.
import
com.microsoft.windowsazure.mobileservices.ServiceFilterResponse;
023.
import
com.microsoft.windowsazure.mobileservices.TableQueryCallback;
024.
import
com.microsoft.windowsazure.mobileservices.MobileServiceUser;
025.
import
com.microsoft.windowsazure.mobileservices.MobileServiceAuthenticationProvider;
026.
import
com.microsoft.windowsazure.mobileservices.UserAuthenticationCallback;
027.
028.
public
class
MainActivity
extends
Activity {
029.
030.
private
MobileServiceClient mClient;
031.
private
MobileServiceTable<MyMember> mMyMember;
032.
private
MyMemberAdapter mAdapter;
033.
034.
@Override
035.
public
void
onCreate(Bundle savedInstanceState) {
036.
super
.onCreate(savedInstanceState);
037.
setContentView(R.layout.activity_main);
038.
039.
040.
041.
try
{
042.
mClient =
new
MobileServiceClient(
044.
"QUjngFknhHZjdaGgYAAzdoXkOzKoxi24"
,
045.
this
);
046.
047.
}
catch
(MalformedURLException e) {
048.
049.
e.printStackTrace();
050.
}
051.
052.
053.
final
AlertDialog.Builder adb =
new
AlertDialog.Builder(
this
);
054.
055.
056.
mClient.login(MobileServiceAuthenticationProvider.Google,
057.
new
UserAuthenticationCallback() {
058.
059.
@Override
060.
public
void
onCompleted(MobileServiceUser user,
061.
Exception exception, ServiceFilterResponse response) {
062.
if
(exception ==
null
) {
063.
064.
Toast.makeText(MainActivity.
this
,String.format(
065.
"You are now logged in - %1$2s"
,
066.
user.getUserId()) ,Toast.LENGTH_LONG).show();
067.
068.
getData();
069.
070.
}
else
{
071.
072.
AlertDialog ad = adb.create();
073.
ad.setMessage(
"You must log in. Login Required"
);
074.
ad.show();
075.
}
076.
}
077.
});
078.
079.
}
080.
081.
private
void
getData()
082.
{
083.
084.
085.
mMyMember = mClient.getTable(MyMember.
class
);
086.
087.
088.
final
ListView lstView1 = (ListView)findViewById(R.id.listView1);
089.
mAdapter =
new
MyMemberAdapter(
this
,R.layout.activity_column);
090.
lstView1.setAdapter(mAdapter);
091.
092.
refreshItemsFromTable();
093.
}
094.
095.
private
void
refreshItemsFromTable() {
096.
097.
mMyMember.execute(
new
TableQueryCallback<MyMember>() {
098.
public
void
onCompleted(List<MyMember> result,
int
count, Exception exception, ServiceFilterResponse response) {
099.
100.
if
(exception ==
null
) {
101.
mAdapter.clear();
102.
for
(MyMember item : result) {
103.
mAdapter.add(item);
104.
}
105.
}
else
{
106.
Log.d(
"Error"
,
"Error Load Data from Mobile Service"
);
107.
}
108.
}
109.
});
110.
}
111.
112.
113.
public
class
MyMemberAdapter
extends
ArrayAdapter<MyMember> {
114.
Context mContext;
115.
int
mLayoutResourceId;
116.
117.
public
MyMemberAdapter(Context context,
int
layoutResourceId) {
118.
super
(context, layoutResourceId);
119.
120.
mContext = context;
121.
mLayoutResourceId = layoutResourceId;
122.
}
123.
124.
@Override
125.
public
View getView(
int
position, View convertView, ViewGroup parent) {
126.
View row = convertView;
127.
128.
final
MyMember currentItem = getItem(position);
129.
130.
if
(row ==
null
) {
131.
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
132.
row = inflater.inflate(mLayoutResourceId, parent,
false
);
133.
}
134.
135.
row.setTag(currentItem);
136.
137.
138.
final
TextView txt_id = (TextView) row.findViewById(R.id.col_id);
139.
txt_id.setText(String.valueOf(currentItem.getId()));
140.
141.
142.
final
TextView txt_name = (TextView) row.findViewById(R.id.col_name);
143.
txt_name.setText(currentItem.getName());
144.
145.
146.
final
TextView txt_email = (TextView) row.findViewById(R.id.col_email);
147.
txt_email.setText(currentItem.getEmail());
148.
149.
return
row;
150.
}
151.
}
152.
153.
154.
@Override
155.
public
boolean
onCreateOptionsMenu(Menu menu) {
156.
getMenuInflater().inflate(R.menu.activity_main, menu);
157.
return
true
;
158.
}
159.
160.
}