2016-05-23 53 views
0

我需要創建一個應用程序,包括從手機瀏覽pdf然後閱讀(稍後將執行,一旦瀏覽部分完成),我遇到了代碼問題。我已經通過下面的鏈接我的計算器找到了,但遺憾的是它不工作, Browse and upload pdf or word file in Android 這裏是我MainActivity.java類從Android Studio中的手機瀏覽pdf

import java.io.File; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Toast; 
import android.app.Activity; 
import android.content.ActivityNotFoundException; 
import android.content.Intent; 
import android.content.Context; 
import android.content.Intent; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import java.io.File; 
import java.net.URI; 
import java.net.URISyntaxException; 

public class MainActivity extends AppCompatActivity { 

Button btnAttach; 

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

    btnAttach = (Button) findViewById(R.id.button1);  
    //button1 is the id of the only button I have in my activity_main.xml 

    // view products click event 
    btnAttach.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      button1_OnClick(view); 
      // Launching All products Activity 

     } 
    }); 
} 


public void button1_OnClick(View view) { 
    getDocument(); 
} 


private void getDocument() { 
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.setType("application/msword,application/pdf"); 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 
    } 

} 
protected void onActivityResult (int req, int result, Intent data) 
{ 
    // TODO Auto-generated method stub 
    super.onActivityResult(req, result, data); 
    if (result == RESULT_OK) { 
     Uri fileuri = data.getData(); 
    String docFilePath = getFileNameByUri(this, fileuri); 
    } 
} 

// get file path 

private String getFileNameByUri(Context context, Uri uri) { 
    String filepath = "";//default fileName 
    File file; 
    if (uri.getScheme().toString().compareTo("content") == 0) { 
     Cursor cursor = context.getContentResolver().query(uri, new String[]{android.provider.MediaStore.Images.ImageColumns.DATA, MediaStore.Images.Media.ORIENTATION}, null, null, null); 
     int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 

     cursor.moveToFirst(); 

     String mImagePath = cursor.getString(column_index); 
     cursor.close(); 
     filepath = mImagePath; 

    } else if (uri.getScheme().compareTo("file") == 0) { 
     try { 
      file = new File(new URI(uri.toString())); 
      if (file.exists()) 
       filepath = file.getAbsolutePath(); 

     } catch (URISyntaxException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } else { 
     filepath = uri.getPath(); 
    } 
    return filepath; 
} 
} 
+1

請確定「不能正常工作」意味着什麼(預期與實際結果,錯誤消息等)。他們仍然沒有把我訂購的水晶球運送給我。 – CherryDT

+0

當我點擊button1時,沒有任何反應。 –

+0

只是看着另一個線程,我會說有'startActivityForResult(intent,REQUEST_CODE_DOC)​​;'想要真正做某事。另外,你的大括號有一些奇怪的地方(檢查'getDocument'中的雜項大括號),我首先想到它編譯的結果。 – CherryDT

回答

0

由於@CherryDT指出,startActivityForResult(intent, REQUEST_CODE_DOC);失蹤了。添加並解決了問題。