【问题标题】:Android: Open a PCM file in a new activityAndroid:在新活动中打开 PCM 文件
【发布时间】:2014-07-21 07:42:23
【问题描述】:

我目前正在开发一个用于播放 PCM 文件并显示其结果线图的应用程序(感谢 jjoe64 提供的GraphView)。

我现在的问题是如何在新活动中打开 PCM 文件。基本上,应用程序必须显示所选文件的折线图。这个特定文件是一个列表条目,因此,当用户从列表中单击文件名时,它将被定向到应用程序中的新活动以进行图形显示。

这是在列表中打开文件的代码,也就是我的问题的第一部分(来自DBActivity.java):

public final static String EXTRA_FILE = "com.example.ecg_to_go.FILENAME";

getListView().setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
        final int sFilePosition = position;
        sFile = files[sFilePosition];
        Intent openFile = new Intent(DBActivity.this, ContentActivity.class);
        Uri uri = Uri.fromFile(sFile);
        openFile.putExtra(EXTRA_FILE, uri);
        startActivity(openFile);
    }
});

这是我问题的第二部分(来自ContentActivity.java):

private File ecgFile;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_content);
    ecgFile = new File(DBActivity.EXTRA_FILE);
    playEcg(ecgFile);   // display the PCM file
}

【问题讨论】:

  • Uri类实现了接口Parcelable,你可以从Intent添加/获取

标签: android file android-activity pcm android-graphview


【解决方案1】:

在此处查看如何在已启动的活动中获取您为意图提供的额外内容。你只需要调用 getIntent().getExtras() ,它会返回一个包,文档在这里:http://developer.android.com/reference/android/os/Bundle.html

祝你好运:)

【讨论】:

  • 我最近已经这样做了,所以这是代码:Intent receiveFile = getIntent(); Bundle b = receiveFile.getExtras(); 我不知道这之后该怎么做,因为我希望第二个活动从第一个活动接收文件。接下来我该怎么办? MimeType 会起作用吗?
  • 正如@chip 所说,您可以从意图中获取 Uri:getIntent().getExtras().getParcelable(DBActivity.EXTRA_FILE)。然后只需使用 uri 打开文件。或者,如果您对 Parcelable 不友好,您可以将 Uri 转换为路径(字符串),将其放入您的包中的第一个活动 openFile.putExtra(EXTRA_FILE, uri.getPath());然后通过执行以下操作检索第二个活动中的路径: getIntent().getStringExtra(EXTRA_FILE) 并通过执行 Uri.parse(the_path) 将其解析为 Uri
猜你喜欢
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
相关资源
最近更新 更多