確定這是問題:在Android中使用外部類從文件讀/讀?
我想做一個Android應用程序(聯繫應用程序)。我有3個班的問題。
- 活性的MainPage
- 的ContactManager
- ContactStore的
的是的MainPage在Android應用在MainActivity。 ContactManager是一個管理應用程序中所有聯繫人的類。該類接收保存在我創建的列表(SortedList)中併發送到ContactStore類的聯繫信息。 ContactStore類有兩個方法:addToFile和loadFromFile。這個類從文件中讀寫。
ContactManager類向ContactStore發送和接收列表。
ContactStore適用於java,但對於android不起作用。
我不知道如何訪問ContactStore中android的內部存儲或外部存儲的位置。
這裏是我的類與重要的方法:
public class MainPage extends ListActivity {
private static ContactManager contactManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_page);
contactManager = new ContactManager(this);
setListAdapter(new MainPageAdapter(this));
}
的的ContactManager:
public class ContactManager {
private SortedList<Contact> contactList = new SortedArrayList<Contact>();
private ContactStore contactStore;
public ContactManager(Context context){
super();
this.contactStore = new ContactStore(context);
this.readContacts();
}
/**
* Add to ContactsList
* @param firstName
* @param lastName
* @param cellPhone
* @param workPhone
* @param email
*/
public void addContact(String firstName, String lastName, String cellPhone, String workPhone, String email){
contactList.add(new Contact(firstName, lastName, cellPhone, workPhone, email));
contactStore.addToFile(this.contactList);
}
/**
* Read from contact list
* @return the contact list
* @throws FileNotFoundException
*/
public void readContacts(){
this.contactList.clear();
contactStore.loadFromFile(this);
}
而且ContactStore的類:
public class ContactStore {
private final File file = new File("Contacts.txt");
public ContactStore(Context context) {
super();
}
public void addToFile(SortedList<Contact> contactList){
try {
file.createNewFile();
PrintWriter out = new PrintWriter(file);
try{
for(int i=0;i<contactList.size();i++){
out.println(contactList.get(i).toString());
}
}
finally{
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void loadFromFile(ContactManager contactManager){
try {
Scanner in = new Scanner(file);
try{
while(in.hasNextLine()){
String line = in.nextLine();
String[] tokens = line.split(" ");
contactManager.addContact(tokens[0], tokens[1], tokens[2], tokens[3], tokens[4]);
}
}
finally{
in.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
我知道,我h大道給予文件路徑(內部或外部存儲),但我不知道該怎麼做,因爲總是給我一個錯誤。如果你不明白,請告訴我。非常感謝,我希望你能幫助我。 ;)
你是我的英雄!!!!謝謝!我已經將上下文傳遞給ContactStore,但我不知道如何使用。但是,謝謝!現在它工作! –