Я новичок в кодировании Android и делал проект с ListView.Я написал программу, которая отображает информацию в текстовом файле в виде списка.Прямо сейчас у меня есть основной файл, расширяющий ListActivity, и все работает.Основной файл вызывает другой класс
fileop.ReadFileAsList ("Installed_packages.txt");
, который читает каждую строку текстового файла.Я хочу сделать этот метод в классе с именем FileOperations и делать именно то, что он делает сейчас, но мой основной класс в моем другом проекте расширяет активность, и я не знаю, как «вызвать» расширение расширенной активности и активности.Я не думаю, что это может быть сделано в Java, вероятно, по уважительной причине.Может ли кто-нибудь показать мне, как я бы / должен рефакторинг это?Основной файл с приведенным ниже кодом:
Итог Я пытаюсь сделать этот метод в fileop и переместить fileop в новый проект, где основной расширяет Activity, а не ListActivity.
MAIN:
package com.example.hellolistview;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class HelloListViewActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, file));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
static FileOperations fileop= new FileOperations();
static final String[] file =fileop.ReadFileAsList("Installed_packages.txt");
}
package com.example.hellolistview;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import android.os.Environment;
import android.util.Log;
public class FileOperations {
public String[] ReadFileAsList(String fileName){
try{
File f = new File(Environment.getExternalStorageDirectory()
+ "/Nullwall/" + fileName);
FileInputStream fileIS = new FileInputStream(f);
BufferedReader buf = new BufferedReader(new InputStreamReader(
fileIS));
StringBuilder DbLines = new StringBuilder();
String line = buf.readLine();
while (buf.readLine() != null)
{
DbLines.append(line);
DbLines.append("\r\n");
}
String[] ListItems = DbLines.toString().split("\r\n");
return ListItems;
}
catch (FileNotFoundException e) {
e.printStackTrace();
Log.e("FileOp_ReadFileAsList","File Not Found in ReadFileAsList()");
}
catch (IOException e) {
e.printStackTrace();
Log.e("FileOp_ReadFileAsList","IOException in ReadFileAsList()");
}
Log.e("FileOp_ReadFileAsList","Probably an Error in ReadFileAsList()");
return null;
}
}
РЕДАКТИРОВАТЬ:
Мой новый основной файл (Куда я хочу пойти):
package com.IPR2.viewlog;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.TextView;
public class Main extends Activity {
private TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
FileOperations fileOperations = new FileOperations();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.TextView01);
//fileOperations.ClearFile("Installed_packages.txt");
ApplicationOperations.ListAllInstalledApplications(getApplicationContext());
ReadFileAsList("Installed_packages.txt"); <--What Im trying to be able to do. It wont let me
}
public String[] ReadFileAsList(String fileName){
}