Как получить имя файла из Activityresult - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужна помощь!

Я сделал свое заявление с опцией выбора файлов. Теперь я хочу загрузить файл в sqlite, например, в формате pdf, сделать c et c Я сделал с выбором файла из мобильный телефон и получить это имя файла и установить в textview я не понимаю, почему имя файла не получается, пожалуйста, помогите с моим кодом. я просто хочу выбрать файл с мобильного и имя файла должно быть установлено в textview

Заранее спасибо

public class MainActivity extends AppCompatActivity {

    final static int PICK_PDF_CODE = 2342;

    TextView filename;
    String displayName;


    Database database = new Database(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        filename = findViewById(R.id.editText);



        filename.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(getApplication(),
                        Manifest.permission.READ_EXTERNAL_STORAGE)
                        != PackageManager.PERMISSION_GRANTED) {
                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
                            Uri.parse("package:" + getPackageName()));
                    startActivity(intent);
                    filename.setText(displayName);
                    return;
                }

                //creating an intent for file chooser
                Intent intent = new Intent();
                intent.setType("*/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_PDF_CODE);
                filename.setText(displayName);

            }
        });
    }

    public void upload(View view) {

        boolean res = database.File_Data(filename.getText().toString());
        if (res) {

            Toast.makeText(MainActivity.this, "Uploaded Successfully",
                    Toast.LENGTH_LONG).show();

        } else {
            Toast.makeText(MainActivity.this, "Try Again",
                    Toast.LENGTH_LONG).show();
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
            case 1:
                if (resultCode == RESULT_OK) {
                    // Get the Uri of the selected file
                    Uri uri = data.getData();
                    String uriString = uri.toString();
                    File myFile = new File(uriString);
                    String path = myFile.getAbsolutePath();
                    displayName = null;

                    if (uriString.startsWith("content://")) {
                        Cursor cursor = null;
                        try {
                            cursor = getApplication().getContentResolver().query(uri, null, null, null, null);
                            if (cursor != null && cursor.moveToFirst()) {
                                displayName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
                            }
                        } finally {
                            cursor.close();
                        }
                    } else if (uriString.startsWith("file://")) {
                        displayName = myFile.getName();
                        filename.setText(displayName);

                    }
                }
                break;
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...