"連絡先名"と対応する "連絡先番号"の.csvファイルを作成したいと思います。しかし、以下のコードを実行すると、エラーが発生します。以下の私のコードを見て、私が間違っているところを教えてください。 私は2つのカラムを持っていることを意味し、1つは名前で、2番目は連絡先番号で、値はshowhであるはずです。coloumn.so plsは自分のコードを見ます。 私はアンドロイドとJavaの新しいです。連絡先リストの.csvに関する問題:android
public class contactlist extends Activity {
static String name;
static int count;
static int countno;
File file = null ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext())
{
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
//error on below line
String phoneno = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
cur.close();
String columnString = "\"PersonName\",\"phoneno\"";
String dataString = null;
dataString = "\"" + name +"\",\"" + phoneno + "\"";
Log.i("saurabh",dataString);
String combinedString = columnString + "\n" + dataString;
File root = Environment.getExternalStorageDirectory();
if (root.canWrite()) {
File dir = new File (root.getAbsolutePath() + "/PersonData");
dir.mkdirs();
file = new File(dir, "Data.csv");
FileOutputStream out = null;
try {
out = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
out.write(combinedString.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
エラーが
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): Caused by: java.lang.IllegalStateException: get field slot from row 0 col -1 failed
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at android.database.CursorWindow.getString_native(Native Method)
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at android.database.CursorWindow.getString(CursorWindow.java:329)
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:49)
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at android.database.CursorWrapper.getString(CursorWrapper.java:135)
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at contactlist.pkg.contactlist.onCreate(contactlist.java:83)
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-28 16:09:56.758: ERROR/AndroidRuntime(27597): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
コードを読み取ることができませんので、正しくフォーマットしてください。 –
私は彼のためにそれをやった。また、@ram jiでは、try ... catchブロックを複数使用する必要はありません。 –
あなたは私に連絡先情報のCSVファイルを作成する方法についてアイデアを教えていただけますか?inconsistensyが発生しないということは、1つの配列に名前を保存し、他の1つの配列にcontactnoを指定し、矛盾があるはずです... so plsは私を助けてくれるはずです... –