我有一个名称列表视图(从数据库导入)。单击列表中的名称时,我想从数据库中获取名称的详细信息,因此我必须将名称传递给下一个要检索详细信息的类.我正在尝试将名称从一个班级传递给另一个班级。我不知道我是否传递错误的字符串或以错误的方式获取字符串的名称。
contact.java
:
public class Contacts extends Activity implements OnClickListener {
int NewContact_Request_Code = 1;
Button newcontact;
ListView listview;
public static final String LOG_TAG = "Contacts";
int mInt = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contactview);// Set the content to contactview.xml
// newcontact = NEW CONTACT button
// listview = MyList List View
newcontact = (Button) findViewById(R.id.baddcontact);
listview = (ListView) findViewById(R.id.mylist);
// Make a New Database
DBContact info = new DBContact(this);
// Open , get Information from database and close it
info.open();
String[] data = info.queryAll();
info.close();
// listview = getListView();
listview.setTextFilterEnabled(true);
// Display the names
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Contacts.this,
android.R.layout.simple_list_item_1, data);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?>listview, View view,
int position, long id) {
String nameclicked = ((TextView)view).getText().toString();
Intent viewintent = new Intent(Contacts.this, ViewContact.class);
viewintent.putExtra("name_clicked", nameclicked);
startActivity(viewintent);
}
});
newcontact.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
Intent newintent = new Intent(Contacts.this, AddNewContact.class);
// start activity for result - to get the name of the new contact
startActivityForResult(newintent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// pass the value of the string via cursor and update the list
}
}
viewcontact.java
:
public class ViewContact extends Activity implements OnClickListener {
Button ViewPPhone, ViewHPhone, ViewOPhone, EditContact;
TextView ViewName;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.viewcontact);
savedInstanceState = getIntent().getExtras();
String name = savedInstanceState.getString("name_clicked");
Long l = Long.parseLong(name);
DBContact getdetails = new DBContact(this);
getdetails.open();
String returnedname = getdetails.getName(l);
String returnedpphone = getdetails.getPphone(l);
String returnedhphone = getdetails.getHphone(l);
String returnedophone = getdetails.getOphone(l);
getdetails.close();
ViewName.setText(returnedname);
ViewPPhone.setText(returnedpphone);
ViewHPhone.setText(returnedhphone);
ViewOPhone.setText(returnedophone);
EditContact = (Button) findViewById(R.id.bEditContact);
EditContact.setOnClickListener(this);
ViewPPhone = (Button) findViewById(R.id.ViewPersonalPhoneNumber);
ViewPPhone.setOnClickListener(this);
ViewHPhone = (Button) findViewById(R.id.ViewHomePhoneNumber);
ViewHPhone.setOnClickListener(this);
ViewOPhone = (Button) findViewById(R.id.ViewOfficePhoneNumber);
ViewOPhone.setOnClickListener(this);
}
public void onClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
case R.id.ViewPersonalPhoneNumber:
/* Intent dialpersonalphone = new
Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("returnedpphone"));
startActivity(dialpersonalphone );*/
break;
case R.id.ViewHomePhoneNumber:
/*Intent dialhome = new
Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("returnedhphone"));
startActivity(dialhome);*/
break;
case R.id.ViewOfficePhoneNumber:
/*Intent dialoffice = new
Intent(android.content.Intent.ACTION_DIAL,
Uri.parse("returnedophone"));
startActivity(dialoffice);*/
break;
case R.id.bEditContact:
startActivity(new Intent("com.example.contactlist.EDITCONTACT"));
break;
}
}
}
LOGCAT
10-02 10:30:23.064: E/AndroidRuntime(1045): FATAL EXCEPTION: main
10-02 10:30:23.064: E/AndroidRuntime(1045): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contactlist/com.example.contactlist.ViewContact}: java.lang.NumberFormatException: Invalid long: "nishanth"
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.ActivityThread.access$600(ActivityThread.java:130)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.os.Handler.dispatchMessage(Handler.java:99)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.os.Looper.loop(Looper.java:137)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-02 10:30:23.064: E/AndroidRuntime(1045): at java.lang.reflect.Method.invokeNative(Native Method)
10-02 10:30:23.064: E/AndroidRuntime(1045): at java.lang.reflect.Method.invoke(Method.java:511)
10-02 10:30:23.064: E/AndroidRuntime(1045): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-02 10:30:23.064: E/AndroidRuntime(1045): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-02 10:30:23.064: E/AndroidRuntime(1045): at dalvik.system.NativeStart.main(Native Method)
10-02 10:30:23.064: E/AndroidRuntime(1045): Caused by: java.lang.NumberFormatException: Invalid long: "nishanth"
10-02 10:30:23.064: E/AndroidRuntime(1045): at java.lang.Long.invalidLong(Long.java:125)
10-02 10:30:23.064: E/AndroidRuntime(1045): at java.lang.Long.parse(Long.java:362)
10-02 10:30:23.064: E/AndroidRuntime(1045): at java.lang.Long.parseLong(Long.java:353)
10-02 10:30:23.064: E/AndroidRuntime(1045): at java.lang.Long.parseLong(Long.java:319)
10-02 10:30:23.064: E/AndroidRuntime(1045): at com.example.contactlist.ViewContact.onCreate(ViewContact.java:23)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.Activity.performCreate(Activity.java:5008)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
10-02 10:30:23.064: E/AndroidRuntime(1045): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
10-02 10:30:23.064: E/AndroidRuntime(1045): ... 11 more