У меня есть один файл activity/java (Browsefile.java), который бы получил абсолютный путь к файлу. Я хочу передать эту информацию в другой файл java для дальнейшей обработки (Sqlitefun.java). На первом этапе я просто хочу убедиться, что переменная пути к файлу передается из Browsefile.java в Sqlitefun.java, поэтому я просто создаю alertdialog в файле Sqlitefun.java, чтобы проверить его. Однако у меня есть проблема в контексте объекта alertdialog.Вызов alertdialog в другом .java файле
(As Sqlitefun.java будет дополнительно выполнять I/O и задач обработки данных SQLite, я предпочитаю, чтобы поместить это в другой файл.)
Вот коды для файлов:
Browsefile.java
public class Browsefile extends ListActivity {
....
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.browsefile);
findViews();
getDir(root);
}
....
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
File file = new File(path.get(position));
if (file.isDirectory())
{
if(file.canRead())
{
getDir(path.get(position));
}
else
{
selectpath = file.getAbsolutePath();
fpath.setText(selectpath);
}
}
else
{
selectpath = file.getAbsolutePath();
fpath.setText(selectpath);
}
}
private Button.OnClickListener importcsv = new Button.OnClickListener() {
public void onClick(View v) {
Sqlitefun firstClass = new Sqlitefun();
firstClass.getsAlertDialog(selectpath);
}
};
....
}
Sqlitefun.java
public class Sqlitefun {
private Context context;
public void getsAlertDialog(String filepath) {
new AlertDialog.Builder(context)
.setMessage(filepath)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
}
}
Я попытался использовать this
, Sqlitefun.this
, чтобы заменить context
в строке AlertDialog.Builder(context)
, но все это не работает. (Затмение сказал The constructor AlertDialog.Builder(Sqlitefun) is undefined
и не позволили мне составить приведенный выше код не было никакой ошибки и позвольте мне скомпилировать, но есть nullpointer
исключение для контекста
Я заменил AlertDialog на Toast как и предложил, но та же проблема существует. Eclipse предположил ошибку «Метод makeText (Context, CharSequence, int) в типе Toast не применим для аргументов (Sqlitefun, String, int) аргументы (Sqlitefun, String, int) – kwytse
Вам по-прежнему нужна контекстная попытка контекст от BrowserFile до Sqlitefun – coder
Возможно ли, что вы можете дать мне пример кода для передачи контекста. Мой обзорный файл предлагается, как указано выше, и вы можете ожидать одну строку для Toast следующим образом: \t статический файл String filepath; \t общественного недействительными getsAlertDialog() { \t \t FilePath = Browsefile.selectpath; \t \t Toast.makeText (Sqlitefun.this, FilePath, тосты. LENGTH_SHORT) .show(); \t \t \t} – kwytse