-2

多くの文字列を持つリストビュー クラスとテキスト ビューを持つクラスの 2 つのクラスがあります。

私は試した:

      @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);
      }

そして2番目のクラスでは

S.setText(LV.item); 

S はテキストビューです

今はnullに見えます..

4

4 に答える 4

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);
}

そしてあなたの2番目の活動では、おそらく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

アクティビティ間でデータを渡さない限り、アクティビティの 1 つのメソッドで別のアクティビティのデータを取得することはできません。それらは 1 つのアクティビティでのみローカルで利用できます

putExtraあるアクティビティから別のアクティビティにデータを送信するために使用します。2 番目のアクティビティでその値を受け取り、テキストとして 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
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 に答える