Мой код просто показывает имя человека в списке View.I хочу показать номер, а также в представлении «Список».Как показать несколько элементов в виде списка
активность
public class HomeActivity extends Activity {
List<String> names;
//List<integer> time;
List<Integer> number;
int position;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
// textView = (TextView) findViewById(R.id.listView);
getCallDetails();
}
private void getCallDetails() {
names = new ArrayList<String>();
number = new ArrayList<Integer>();
StringBuffer sb = new StringBuffer();
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
/* Query the CallLog Content Provider */
Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null,
null, null, strOrder);
int name = managedCursor.getColumnIndex(CallLog.Calls.CACHED_NAME);
int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
//sb.append("Call Log :");
while (managedCursor.moveToNext()) {
String namee = managedCursor.getString(name);
String phNum = managedCursor.getString(number);
String callTypeCode = managedCursor.getString(type);
String strcallDate = managedCursor.getString(date);
Date callDate = new Date(Long.valueOf(strcallDate));
String callDuration = managedCursor.getString(duration);
String callType = null;
int callcode = Integer.parseInt(callTypeCode);
names.add(namee);
// number.add(phNum);
switch (callcode) {
case CallLog.Calls.OUTGOING_TYPE:
callType = "Outgoing";
break;
case CallLog.Calls.INCOMING_TYPE:
callType = "Incoming";
break;
case CallLog.Calls.MISSED_TYPE:
callType = "Missed";
break;
}
// adaptorname adaptor = new adaptorname(this, names);
//adaptorname adaptor = new adaptorname(this, names);
/* adaptorname adaptor = new SimpleCursorAdapter(this, R.layout.cell, managedCursor,
adaptorname adaptor= new adaptorname[]{this,names,number}, new int[]{
R.id.lblName, R.id.lblnum});*/
adaptorname adaptor = new adaptorname(this, names);
ListView list = (ListView) findViewById(R.id.listView);
list.setAdapter(adaptor);
}
}
}
Этот обычай адаптер я использую
адаптер
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
/**
*
*/
public class adaptorname extends BaseAdapter {
List<String> name;
//my addition
List<String> numbers;
Context context;
adaptorname(Context context, List<String> name,List<String> numbers){
this.name = name;
this.numbers=numbers;
this.context = context;
}
@Override
public int getCount() {
return name.size();
}
@Override
public Object getItem(int position) {
return name.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// // Get the data item for this position
// CellName cellNsme = new CellName();
// Check if an existing view is being reused, otherwise inflate the view
ViewHolder viewHolder; // view lookup cache stored in tag
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(context);
convertView = inflater.inflate(R.layout.cell, parent, false);
viewHolder.name = (TextView) convertView.findViewById(R.id.lblName);
//my addition
viewHolder.number=(TextView) convertView.findViewById(R.id.lblnum);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
// Populate the data into the template view using the data object
viewHolder.name.setText(name.get(position));
//my addition
//viewHolder.number.setText(numbers.get(position));
// Return the completed view to render on screen
return convertView;
}
public class ViewHolder{
TextView name;
TextView number;
}
}
Это представление списка Layout
Layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.moni.friendrecco.Call_Reports">
<
ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
это макет для моей строки
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="130dp"
android:background="#5ffff7">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="lblName"
android:id="@+id/lblName"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="30dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="lblnum"
android:id="@+id/lblnum"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/lblName"
android:layout_alignEnd="@+id/lblName"
android:layout_below="@+id/lblName" />
</RelativeLayout>
Что происходит, когда вы раскомментировать эту строку: //viewHolder.number.setText (numbers.get (позиция)); – jbarat
комплект адаптера как это: adaptorname adapter = new adaptorname (это, имена, число); и раскомментируйте их: // number.add (phNum); и //viewHolder.number.setText(numbers.get(position)); – WannaBeGeek
Nops it did't work :( –