作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
团队
我的问题是,如何从 startAtcivityForResult
读取结果。按下按钮时,它会调用 bStock()
,后者会调用 URL 并检索数据。我已经验证了 URL 调用是正确的并且我确实获得了数据。我使用 finishActivity(1)
不显示实际内容或结果。为了这条消息,这里是我在不使用 finishActivity(1)
我的目标是读取结果并仅显示某些值,如名称和最后价格。这是我的代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//setContentView(R.layout.content_layout_id);
final Button buttonStock = findViewById(R.id.buttonS);
buttonStock.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
bStock();
}
});
}
static final int REQUEST_CODE = 1;
protected void bStock() {
String url = "http://dev.markitondemand.com/Api/v2/Quote/jsonp?symbol=AG";
Uri uri = Uri.parse(url);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
i.setPackage("com.android.chrome");
startActivityForResult(i, REQUEST_CODE);
finishActivity(1);
}
@Override
protected void onActivityResult ( int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
// Make sure the request was successful
//if (resultCode == RESULT_OK) { // 0 -1
// Get the URI that points to the selected contact
Uri o = data.getData();
Toast.makeText(MainActivity.this, "Name ", Toast.LENGTH_LONG).show();});
}
}
我正在使用 Toast
(目前)只是为了显示名称,但我不知道如何读取数据。任何帮助,将不胜感激。
杰西
最佳答案
这不会像您预期的那样工作,因为您尝试启动的 Activity (chrome 浏览器)未准备好将您想要的结果返回给您。 Intent (VIEW) 告诉浏览器执行此操作——查看给定的 URL。
对于不属于您自己的 Activity ,您必须仔细检查它们的描述,看看它们是否支持任何结果调用,以及它们如何返回结果——例如有一个“拍照” Intent ,它将通过一些 uri 数据将拍摄的照片返回给您。
大多数时候,startActivityForResult 用于启动您自己的 Activity ,您希望将数据返回给调用 Activity 。在这种情况下,您可以自行定义如何将结果传递回调用 Activity 。
关于java - 如何从 startActivityForResult 读取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49392781/
我是一名优秀的程序员,十分优秀!