-2

我有两个类,一个带有许多字符串的列表视图类和一个带有文本视图的类。我希望当我单击列表视图上的一个字符串时,第二个类开始并且其中的 textView 是 setText 到单击的项目..

我试过:

      @Override
      protected void onListItemClick(android.widget.ListView l, View v, int position, long id) 
      {
          super.onListItemClick(l, v, position, id);
          String item = (String) getListAdapter().getItem(position);
          Intent select = new Intent(LV.this, Main.class);
          startActivity(select);
      }

在第二节课上

S.setText(LV.item); 

S 是文本视图

现在它显示为空..

4

4 回答 4

0

除非您在活动之间传递数据,否则您不会在另一个活动中以活动的一种方法获取数据。它们仅对一项活动在本地可用

用于putExtra将数据从一个活动发送到另一个活动。现在在第二个活动中接收该值并将其设置为 TextView 的文本

例如这里

在第一个活动中

Intent select = new Intent(LV.this, Main.class);
select.putExtra("item", item)
startActivity(select);

在下一个活动中,收到这个

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("item");
}

S.setText(value); 
于 2012-10-19T09:31:22.613 回答
0

item只是一个局部变量onListItemClick(),你不能像你尝试过的那样静态访问它。用于Intent将数据发送到另一个活动。

@Override
protected void onListItemClick(android.widget.ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    String item = (String) getListAdapter().getItem(position);
    Intent select = new Intent(LV.this, Main.class);
    select.putExtra("itemClicked", item);
    startActivity(select);
}

在您的第二个活动中,可能在onCreate()

Bundle extras = getIntent().getExtras();
S.setText(extras.getString("itemClicked");
于 2012-10-19T09:35:59.773 回答
0

要在活动之间发送数据,请使用:

@Override
  protected void onListItemClick(android.widget.ListView l, View v, int position, long id) 
  {
      super.onListItemClick(l, v, position, id);
      String item = (String) getListAdapter().getItem(position);
      Intent select = new Intent(LV.this, Main.class);
      select.putExtra("item", item);
      startActivity(select);
  }

在另一个活动中使用这个

String item = getIntent().getStringExtra("item");
于 2012-10-19T09:36:55.887 回答
0
MainActivity

 String listview_array[]={"01634    ABOHAR","080 Bangalore","011 Delhi","Dell Inspiron"};
 lv.setAdapter(new ArrayAdapter<String>
    (MainActivity.this,
    android.R.layout.simple_list_item_1, listview_array));
    lv.setOnItemClickListener(new OnItemClickListener()
    {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            for(int i=0;i<listview_array.length;i++)
            {
            if(arg2==i)
            {
                Intent t= new Intent("com.example.listviewsearch.detailview");
                t.putExtra("Extra", listview_array[arg2]);
                startActivity(t);
            }
            }

        }

    });

详细视图

TextView tv= (TextView) findViewById(R.id.tv1);
    Bundle extras = getIntent().getExtras(); 
    System.out.println("Get Intent done");
    if(extras !=null)
    {
        tv.setText(extras.getString("Extra").toString());

    }
于 2012-10-19T10:04:10.943 回答