开始新活动的阵列
好的,我意识到这是非常基本的,但我很新奇这是它的虚幻。我有什么是一个数组。我想要的是当用户单击数组中的某个项目时,它会打开一个特定于该项目的新活动。它是一个节日清单,当你点击其中一个节日时,当你点击它时,它会打开一个活动,提供有关节日的信息。开始新活动的阵列
我不知道我在这里做什么。我很确定我需要使用OnClickListener,但多数民众赞成它。
活动
package com.MADONK.LAFESTS;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;
public class Home extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.main, Festivals));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
static final String[] Festivals = new String[] {
"Lake Arthur Regatta", "Contraband Days", "Iowa Rabbit Festival",
};
}
既然你延长ListActivity
,您可以覆盖onListItemClick()
。你可以做这样的事情,它得到适当的Festival
对象,并将其成员为Intent
,那么Intent
用来启动另一个Activity
:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Festival item = (Festival) l.getItemAtPosition(position);
Intent i = new Intent(v.getContext(),YourFestivalDetailActivity.class);
i.putExtra("some_attribute", item.getSomeAttribute());
startActivity(i);
}
然后在Activity
您启动意在显示细节节日,这在上面的例子中被称为YourFestivalDetailActivity
,你应该提取从Intent
节信息来启动它:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String someAttribute = getIntent().getStringExtra("some_attribute");
}
注意,在这个例子中,我只传递一个String
通过Intent
,但知道你可以通过更多的通过Intent
。 See the docs。
,所以为了更好地理解,它如何知道要开始哪个活动?或者它只是一个活动,它会从别的东西中调用所需的信息来显示?如果是这样,信息存储在哪里? – Madonk 2012-02-14 01:05:06
在第一个代码片段中,您会看到我制作了一个名为YourFestivalDetailActivity的活动。由于我将它传递给Intent构造函数,因此知道启动该Activity的startActivity行。您应该创建一个Activity(不要忘记将它添加到您的AndroidManifest.xml文件中),并且该活动应该实现上面第二个代码片段中的代码。这个想法是,你将一个节日信息作为额外内容传递给一个意图,然后以该意图开始的活动可以提取节日信息并将其分配给TextViews或其他任何东西。 – 2012-02-14 01:10:55
所以信息保存在清单中?或者它保存在layout.xml中,第二个片段根据数组中项目的位置告诉它调用哪个xml? – Madonk 2012-02-14 01:18:43
Post some code some some will hellp – kosa 2012-02-14 00:52:04
当你说你有一个数组,你的意思是你有一个ListView,并且你已经为它连接了一个ArrayAdapter? – 2012-02-14 00:52:41
是的。我已经添加了代码 – Madonk 2012-02-14 00:54:52