初学Android:ListView会影响下一堂课

时间:2012-05-12 01:30:14

标签: java android eclipse android-layout android-intent

我是初学程序员,所以请耐心等待。我正在尝试创建一个应用程序,其中列表视图中的项目将影响将在下一个活动中显示的内容。到目前为止,我有列表活动:

public class Primary extends ListActivity{
private static final String[] items = {"Item1", "Item2", "Item3", "item4", "Item5"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));

    TextView heading =(TextView)findViewById(R.id.listViewHeading);
    heading.setText("Primary");
}

public void onListItemClick(ListView parent, View v, int position, long id){

}

对于第二项活动,我有这个:

public class ImageActivity extends Activity{
TextView heading;
ImageView image;
TextView text;
    public static final String[] headings={"heading 1", "heading 2", "heading 3", "heading 4", "heading 5",};


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.image_activity);

    heading = (TextView)findViewById(R.id.adHeading);
    image = (ImageView)findViewById(R.id.adImage);
    text =(TextView)findViewById(R.id.adText);

    addInfo();
}

private void addInfo() {
    heading.setText(headings[x]);
    image.setImageResource(images[x]);
    text.setText(text[x]);

}

如何根据列表视图中的哪个项目进行标题,图像和文本的更改?

4 个答案:

答案 0 :(得分:2)

在listview活动中。

Intent i = new Intent(this, ImageActivity.class);
    i.putExtra("data", data);
    startActivity(i);

下一个Activity onCreate()方法。

final String data = getIntent().getStringExtra("data");

答案 1 :(得分:0)

使用属于Intent的“extras”功能。

从Primary调用start ImageActivity时,可以使用'extras'在两者之间传递信息。

有关详细信息,请参阅this链接。

我会在这里给你一个基本的例子。单击列表项时,使用“putExtra”将想要ImageActivity的数据放入intent中。

Intent intent = new Intent(getBaseContext(), ImageActivity.class);
String data = "somedata";
intent.putExtra("DATA", data);
startActivity(intent)

然后,在ImageActivity onCreate中,检索如下数据:

Bundle extras = getIntent().getExtras();
if(extras !=null) {
String data= extras.getString("DATA"); // matches the tag used in putExtra
}

检索完数据后,请设置必要的视图。

答案 2 :(得分:0)

我想你想在第二个活动中设置标题,图像和文本,与列表中第一个活动的选定索引相关。

只做一件事,在第一个活动中放入以下代码

    public void onListItemClick(ListView parent, View v, int position, long id)
    {
        Intent intent = new Intent(this.getApplicationContext(), ImageActivity.class);
        intent.putExtra("pos", position);
        startActivity(intent);
    }

所以,现在你通过列表​​中所选项目的位置。

现在,将以下代码放入下一个活动

    private void addInfo()
    {
        Bundle ext = getIntent().getExtras();
        if(ext != null)
        {
            int pos= ext.getInteger("pos");
                       //  ext.getInt("pos");

            heading.setText(headings[pos]);

            //  hey, frend, you don't have any array for selecting image-name and text
            //  image.setImageResource(images[x]);
            //  text.setText(text[x]);
        }
    }

答案 3 :(得分:0)

使用下面的代码

public void onListItemClick(ListView parent, View v, int position, long id)
        {
            Intent intent = new Intent(Primary.this, ImageActivity.class);
            intent.putExtra("selected value", item[position]);
            startActivity(intent);
        }
ImageActivity类中的

:在oncreate中(或者您可以将项变量设置为全局)

String item = getIntent().getStringExtra("Selected value");