我是android的新手..
我面临着意图问题..
我的问题是......我想将用户选择的值从一个活动的字符串arrayList传递给另一个活动......值是来自数据库的字符串通过JSON。这些值存储在一个arraylist ..
现在我需要将值从一个活动传递到另一个...使用intent ..
lvForDialog = (ListView) viewList.findViewById(R.id.List_view); ArrayAdapter<String> adapter = (new ArrayAdapter<String>(Nexttopic.this, R.layout.row_topic, R.id.child_row,tnamelist)); lvForDialog.setAdapter(adapter); lvForDialog.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position,long id) { Intent intent = new Intent(Nexttopic.this,Question.class); intent.putExtra(TAG_TOPICNAME, tname);
我想将TAG_TOPICNAME
传递给另一个活动..用户选择我要传递的名称的主题名称......
怎么做?
非常感谢..
答案 0 :(得分:3)
试试这个:
i.putExtra("Name", tname );
startActivity(i);
在您的第一个活动中,然后您可以将以下代码添加到第二个活动中并获取您的数据。
Intent intent = getIntent();
String Name = intent.getExtras().getString("Name");
编辑:将此作为示例在onitemclick Listener中获取所选项目
@Override public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
{
Cursor GettName = (Cursor)viewList.getItemAtPosition(position);//Get a Cursor from the selected position to access the selected Item
String tname = GettName.getString(GettName.getColumnIndex(CustomerDBAdapter.KEY_TNAME)); // get approporiate String from that cursor
i.putExtra("Name", tname );
startActivity(i);
}
答案 1 :(得分:1)
您应该在下面的行
之后调用代码中缺少的startActivity(learnintent);
Intent learnintent = new Intent(Nexttopic.this,Question.class);
learnintent.putExtra(TAG_TOPICNAME, tname);
我希望你在使用它之前也定义了常量TAG_TOPICNAME
。
然后在Question
活动中执行类似下面的操作来访问该值。
String topicName = intent.getIntent().getStringExtra(TAG_TOPICNAME);
这里TAG_TOPICNAME
应该是我在之前的活动中分配的相同值,更好地定义class Constants
并将此String保持为常量,并在两个地方使用它。
答案 2 :(得分:0)
最简单的方法是将会话ID传递给您用于启动活动的意图中的注销活动:
Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent)
Intents的docs有更多信息(请查看标题为“Extras”的部分)。
答案 3 :(得分:0)
您可以使用bundle传递值。您可以将其捆绑并使用intent传递它。示例代码如下所示....
bundle = new Bundle(); data1 = Double.valueOf(myEditText.getText()。toString());
bundle.putDouble("data1", data1);
Intent intent = new Intent(this, AnotherActivity.class);
intent.putExtras(bundle);
startActivity(intent);
finish();
将其形成意图
的示例 Bundle b = getIntent().getExtras();
noqs = b.getDouble("data1");
mTvCat.setText("hhhhhh"+point+noqs);
如果它对你有用,那么你可以将它存储在一个静态变量中。您可以从应用程序的任何位置访问它。