Android File Chooser Возвращает путь к основному классу - PullRequest
0 голосов
/ 17 ноября 2011

Я хочу реализовать средство выбора файлов Android для распознавания текста.

У меня есть исходный код с этого сайта: здесь

То, что я хочу, - это создать основное действие, используя намерение вызвать FileChooser

public class MainFileChooser extends Activity {
    Button btnBrowse =null;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.utama);

        btnBrowse = (Button)findViewById(R.id.btnBrowse);
        btnBrowse.setOnClickListener(new OnClickListener(){

            public void onClick(View arg0) {
                Intent intent = new Intent();
                intent.setClass(MainFileChooser.this, FileChooser.class);
                startActivity(intent);


            }

        });
    }

}

Когда кнопка нажата, она будет связана с FileChooser, а затем, когда нажата плитка, действие вернется к MainFileChooser и также вернет путь к файлу.

Путь к файлу будет обработан для распознавания текста, такого как преобразование в оттенки серого, извлечение объектов и так далее.

Вопрос в том, как я могу вернуть путь к изображению к активности MainFileChooser и для заданного пути я могу создать растровое изображение (буферизованное изображение)?

1 Ответ

1 голос
/ 11 декабря 2011

Как и предложенный исходный код для FileChooser, вы можете изменить onFileClick, чтобы он возвращал путь к изображению:

private void onFileClick(Option o) {
  String path = o.getName();
  Intent data = new Intent();
  data.putExtra("path", path);
  setResult(Activity.RESULT_OK, data);
  finish();
}

Затем в MainFileChooser вместо startActivity используйте startActivityForResult:

setActivityForResult(intent, 1234);

Вам также необходимо добавить onActivityResult к MainFileChooser, чтобы получить имя файла:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (resultCode == Activity.RESULT_OK && requestCode == 1234) {
     String path = data.getStringExtra("path");
     Toast.makeText(this, "Path: " + path, Toast.LENGTH_SHORT).show();
  }
}
...