[英]Using own class in another Android Activity class
我上了這堂課:
public class DisplayItems extends ListActivity{
ArrayList<String> contactNames = new ArrayList<>();
ArrayList<String> contactNumbers = new ArrayList<>();
//Get the contacts in the phone
public void getContacts(){
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
contactNumbers.add(phoneNumber);
contactNames.add(name + "\n" + phoneNumber);
}
phones.close();
}
//displaying contacts name and numbers in a listView
public void displayContacts(){
ListView lstView = getListView();
lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
setListAdapter(new ArrayAdapter<>(this,
android.R.layout.simple_list_item_checked, contactNames));
}
}
現在,我想在這一類中使用該類:
public class PickNumbersActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pick_numbers);
//Get message text
Intent i = getIntent();
Bundle extras = i.getExtras();
String message_text = extras.getString("message");
DisplayItems display = new DisplayItems();
display.getContacts();
display.displayContacts();
}
}
但這不起作用...而且我是android studio的新手,即使我的應用無法正常工作,我什至都不知道在哪里查找錯誤消息。謝謝。
首先,您嘗試實例化擴展ListActivity
DisplayItems
類,並且不應該這樣使用它。 更好的方法是像這樣將DisplayItems
轉換為DisplayItemsFragment
。
首先,請確保您的布局具有container
ID。
然后將其添加到您的PickNumbersActivity
:
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new DisplayItemsFragment())
.commit();
}
最后,使您的類像這樣擴展ListFragment:
public class DisplayItemsFragment extends ListFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
getContacts();
}
//Get the contacts in the phone
public void getContacts(){
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
contactNumbers.add(phoneNumber);
contactNames.add(name + "\n" + phoneNumber);
}
phones.close();
displayContacts();
}
//displaying contacts name and numbers in a listView
public void displayContacts(){
ListView lstView = getListView();
lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
setListAdapter(new ArrayAdapter<>(this,
android.R.layout.simple_list_item_checked, contactNames));
}
}
如果您還有其他疑問,請查閱有關片段文檔的官方文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.