Guest User

Untitled

a guest
Mar 21st, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.50 KB | None | 0 0
  1. public class MainActivity extends ListActivity {
  2.  
  3. ArrayList<String> messages = new ArrayList<String>();
  4.  
  5. ArrayAdapter<String> adapter;
  6. ArrayList<String> msglist = new ArrayList<String>();
  7. String num;
  8.  
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. ListView lvmsgs = (ListView) findViewById(R.id.msglist);
  13. Uri uriSMSURI = Uri.parse("content://sms/inbox");
  14. Cursor cur = getContentResolver().query(uriSMSURI, null, null, null, null);
  15. String sms = null;
  16. ContentResolver resolver = null;
  17. while (cur.moveToNext()) {
  18. sms += "From :" + cur.getString(2) + " : " + cur.getString(cur.getColumnIndexOrThrow("body")) + "n";
  19. num = cur.getString(2);
  20. num = num.replace("+639", "09");
  21. if (msglist.contains(num)) {
  22.  
  23. } else {
  24. msglist.add(num);
  25. messages.add(getContactName(num).toString());
  26. }
  27. }
  28. adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, messages);
  29. setListAdapter(adapter);
  30. lvmsgs.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  31. @Override
  32. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  33. Toast.makeText(getApplicationContext(), "Toast",
  34. Toast.LENGTH_LONG).show();
  35. }
  36. });
  37. }
  38.  
  39. private String getContactName(String number) {
  40.  
  41. String name = null;
  42. String[] projection = new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME};
  43. Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
  44. Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null);
  45.  
  46. if (cursor.moveToFirst()) {
  47. name = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
  48. } else {
  49. return number;
  50. }
  51. return name;
  52. }
  53. }
  54.  
  55. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  56. xmlns:tools="http://schemas.android.com/tools"
  57. android:layout_width="fill_parent"
  58. android:layout_height="wrap_content"
  59. android:background="#ffffff"
  60. android:paddingBottom="@dimen/activity_vertical_margin"
  61. android:paddingLeft="@dimen/activity_horizontal_margin"
  62. android:paddingRight="@dimen/activity_horizontal_margin"
  63. android:paddingTop="@dimen/activity_vertical_margin"
  64. tools:context=".MainActivity">
  65.  
  66. <ListView
  67. android:id="@+id/msglist"
  68. android:layout_width="fill_parent"
  69. android:layout_height="fill_parent"
  70. android:layout_alignParentStart="true"
  71. android:layout_alignParentTop="true"
  72. android:descendantFocusability="blocksDescendants"
  73. android:focusable="false"
  74. android:focusableInTouchMode="false" />
  75. </RelativeLayout>
  76.  
  77. activity_main:
  78.  
  79. <RelativeLayout
  80. xmlns:android="http://schemas.android.com/apk/res/android"
  81. xmlns:tools="http://schemas.android.com/tools"
  82. android:layout_width="match_parent"
  83. android:layout_height="match_parent"
  84. android:paddingBottom="@dimen/activity_vertical_margin"
  85. android:paddingLeft="@dimen/activity_horizontal_margin"
  86. android:paddingRight="@dimen/activity_horizontal_margin"
  87. android:paddingTop="@dimen/activity_vertical_margin"
  88. tools:context=".MainActivity">
  89.  
  90. <ListView
  91. android:id="@+id/lvCustomList"
  92. android:layout_width="match_parent"
  93. android:layout_height="match_parent" />
  94.  
  95. </RelativeLayout>
  96.  
  97. layout_list_item.xml
  98.  
  99. <LinearLayout
  100. xmlns:android="http://schemas.android.com/apk/res/android"
  101. android:layout_width="match_parent"
  102. android:layout_height="match_parent"
  103. android:gravity="center_vertical"
  104. android:orientation="horizontal"
  105. android:padding="10dp">
  106. <ImageView
  107. android:id="@+id/ivIcon"
  108. android:layout_width="wrap_content"
  109. android:layout_height="wrap_content"
  110. android:src="@drawable/start1" />
  111. <LinearLayout
  112. android:layout_width="wrap_content"
  113. android:layout_height="wrap_content"
  114. android:orientation="vertical">
  115. <TextView
  116. android:id="@+id/tvTitle"
  117. android:layout_width="wrap_content"
  118. android:layout_height="wrap_content"
  119. android:padding="5dp"
  120. android:text="Title" />
  121. <TextView
  122. android:id="@+id/tvDesc"
  123. android:layout_width="wrap_content"
  124. android:layout_height="wrap_content"
  125. android:padding="5dp"
  126. android:text="Description" />
  127. </LinearLayout>
  128. </LinearLayout>
  129.  
  130. ModelClass:
  131.  
  132. package com.example.evuser.customlistviewdemo;
  133.  
  134. public class ListData {
  135.  
  136. String Description;
  137. String title;
  138. int imgResId;
  139.  
  140. public String getDescription() {
  141. return Description;
  142. }
  143.  
  144. public void setDescription(String description) {
  145. Description = description;
  146. }
  147.  
  148. public String getTitle() {
  149. return title;
  150. }
  151.  
  152. public void setTitle(String title) {
  153. this.title = title;
  154. }
  155.  
  156. public int getImgResId() {
  157. return imgResId;
  158. }
  159.  
  160. public void setImgResId(int imgResId) {
  161. this.imgResId = imgResId;
  162. }
  163.  
  164. import android.app.Activity;
  165. import android.content.Context;
  166. import android.os.Bundle;
  167. import android.widget.ListView;
  168.  
  169. import java.util.ArrayList;
  170.  
  171. public class MainActivity extends Activity {
  172.  
  173. ListView lvDetail;
  174. Context context = MainActivity.this;
  175. ArrayList<ListData> myList = new ArrayList<ListData>();
  176.  
  177. String[] title = new String[]{
  178. "Title 1", "Title 2", "Title 3", "Title 4",
  179. "Title 5", "Title 6", "Title 7", "Title 8"
  180. };
  181. String[] desc = new String[]{
  182. "Desc 1", "Desc 2", "Desc 3", "Desc 4",
  183. "Desc 5", "Desc 6", "Desc 7", "Desc 8"
  184. };
  185. int[] img = new int[]{
  186. R.drawable.start1, R.drawable.star2, R.drawable.star3, R.drawable.star4,
  187. R.drawable.star5, R.drawable.star4, R.drawable.star7, R.drawable.star8
  188. };
  189.  
  190. @Override
  191. protected void onCreate(Bundle savedInstanceState) {
  192. super.onCreate(savedInstanceState);
  193. setContentView(R.layout.activity_main);
  194.  
  195. lvDetail = (ListView) findViewById(R.id.lvCustomList);
  196. // insert data into the list before setting the adapter
  197. // otherwise it will generate NullPointerException - Obviously
  198. getDataInList();
  199. lvDetail.setAdapter(new MyBaseAdapter(context, myList));
  200. }
  201.  
  202. private void getDataInList() {
  203. for (int i = 0; i < title.length; i++) {
  204. // Create a new object for each list item
  205. ListData ld = new ListData();
  206. ld.setTitle(title[i]);
  207. ld.setDescription(desc[i]);
  208. ld.setImgResId(img[i]);
  209. // Add this object into the ArrayList myList
  210. myList.add(ld);
  211. }
  212. }
  213.  
  214. AdapterClass:
  215.  
  216. package com.example.evuser.customlistviewdemo;
  217.  
  218. import android.content.Context;
  219. import android.view.LayoutInflater;
  220. import android.view.View;
  221. import android.view.ViewGroup;
  222. import android.widget.BaseAdapter;
  223. import android.widget.ImageView;
  224. import android.widget.TextView;
  225.  
  226. public class MyBaseAdapter extends BaseAdapter {
  227.  
  228. ArrayList<ListData> myList = new ArrayList<ListData>();
  229. LayoutInflater inflater;
  230. Context context;
  231.  
  232.  
  233. public MyBaseAdapter(Context context, ArrayList<ListData> myList) {
  234. this.myList = myList;
  235. this.context = context;
  236. inflater = LayoutInflater.from(this.context);
  237. }
  238.  
  239. @Override
  240. public int getCount() {
  241. return myList.size();
  242. }
  243.  
  244. @Override
  245. public ListData getItem(int position) {
  246. return myList.get(position);
  247. }
  248.  
  249. @Override
  250. public long getItemId(int position) {
  251. return 0;
  252. }
  253.  
  254. @Override
  255. public View getView(int position, View convertView, ViewGroup parent) {
  256. MyViewHolder mViewHolder;
  257.  
  258. if (convertView == null) {
  259. convertView = inflater.inflate(R.layout.layout_list_item, parent, false);
  260. mViewHolder = new MyViewHolder(convertView);
  261. convertView.setTag(mViewHolder);
  262. } else {
  263. mViewHolder = (MyViewHolder) convertView.getTag();
  264. }
  265.  
  266. ListData currentListData = getItem(position);
  267.  
  268. mViewHolder.tvTitle.setText(currentListData.getTitle());
  269. mViewHolder.tvDesc.setText(currentListData.getDescription());
  270. mViewHolder.ivIcon.setImageResource(currentListData.getImgResId());
  271.  
  272. return convertView;
  273. }
  274.  
  275. private class MyViewHolder {
  276. TextView tvTitle, tvDesc;
  277. ImageView ivIcon;
  278.  
  279. public MyViewHolder(View item) {
  280. tvTitle = (TextView) item.findViewById(R.id.tvTitle);
  281. tvDesc = (TextView) item.findViewById(R.id.tvDesc);
  282. ivIcon = (ImageView) item.findViewById(R.id.ivIcon);
  283. }
  284. }
  285.  
  286. In the above example, I have given how to create custom layout for listview and use that in adapter class. You modify this class according to your requirement.
Add Comment
Please, Sign In to add comment