我已经做了什么?如何检索pojo初始化类的数据?
我想获取数组中的通话记录,并希望将该数组传递给MySQL数据库,所以我创建了pojo类并在getter和setter方法中设置了该变量。这里是从这个POJO类POJO类,我的Java代码..
public class DataBean {
String number;
String type;
String date;
String duration;
public DataBean(String number, String type, String date, String duration) {
this.number = number;
this.type = type;
this.date = date;
this.duration = duration;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getDuration() {
return duration;
}
public void setDuration(String duration) {
this.duration = duration;
}
}
我想要一套呼叫详细到该初始化的变量。这是我从这个代码我正尽一切时间的公司Databeans所以我每次都得到一个新的ArrayList,但我想只是整个数据的一个数组的新实例MainActivity
。而java代码..
public class MainActivity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.list);
getCallDetails();
}
public void getCallDetails() {
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null, null, null, strOrder);
int number1 = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
int type1 = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
int duration1 = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
while (managedCursor.moveToNext()) {
String number = managedCursor.getString(number1);
String type2 = managedCursor.getString(type1);
String date11 = managedCursor.getString(managedCursor.getColumnIndexOrThrow("date")).toString();
java.util.Date date1 = new java.util.Date(Long.valueOf(date11));
String duration = managedCursor.getString(duration1);
String type = null;
String date = date1.toString();
int callcode = Integer.parseInt(type2);
switch (callcode) {
case CallLog.Calls.OUTGOING_TYPE:
type = "Outgoing";
break;
case CallLog.Calls.INCOMING_TYPE:
type = "Incoming";
break;
case CallLog.Calls.MISSED_TYPE:
type = "Missed";
break;
}
DataBean dataBean = new DataBean(number, type, date, duration);
ArrayList<DataBean> arrayList = new ArrayList<>();
arrayList.add(dataBean);
Log.d("tag", arrayList.toString());
}
managedCursor.close();
/*//ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(adapter);*/
}
}
从这我可以得到号码,持续时间,日期和呼叫类型在logcat。
我想要什么?
我想补充一点,不为什么,但下面的文本每一次演出公司Databeans的一个公司Databeans的ArrayList ..
12-02 15:18:50.636 8034-8034/com.example.hiren.callhistory D/Arrat: [[email protected]]
我没有收到ArrayList的价值,我想插入阵列到MySQL表。
请阅读这篇文章,了解'toString' http://stackoverflow.com/questions/3615721/how-to-use-the-tostring-method-in- java它会解释你如何正确打印值 – jakubbialkowski
你需要在每一行的循环中生成一个新的dataBean?并将其添加到循环中。在这里,您正在设置相同实例中的值。所以每次都会覆盖它,只保留最后一个值。对于这个列表,你在循环后添加的,所以你只会有价值。 – AxelH
感谢您的回复@jakubbialkowski,但我不想要字符串我想arraylist或数组,我可以插入到数据库 –