1

文字列配列を含むListAdapterがあります。

リスト内のアイテムをクリックすると、アプリケーションが現在クリックされているアイテムを別のアクティビティに渡し、別のアクティビティに移動するようにします。

onItemClickListenerを設定しようとしていますが、成功しません。

アクティビティ:

package com.nituach.nituach;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class NituachActivity extends Activity implements OnClickListener, 
OnItemClickListener    {

Button addNewBuisness;
ListView blv;
public static int bname;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final String TAG = NituachActivity.class.getSimpleName();
    addNewBuisness = (Button) findViewById(R.id.btnAddNewBuisness);
    addNewBuisness.setOnClickListener(NituachActivity.this);
    blv = (ListView) findViewById(R.id.listView1);

    Log.d(TAG, "All Variables was created");

    DataBase dbc = new DataBase(NituachActivity.this);
    dbc.open();

    List<String> cs = dbc.getData();

    blv.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, cs));

    dbc.close();
    blv.setOnItemClickListener(NituachActivity.this);


}

public void onClick(View v) {
    if (v == addNewBuisness) {
        Intent addnbIntent = new Intent(NituachActivity.this,
                AddNewBuisness.class);
        NituachActivity.this.startActivity(addnbIntent);    
    }           

}

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {


}

}
4

3 に答える 3

2

-メソッドonItemClick()は空です。

ListViewは、メソッドOnItemClickListenerをエクスポートするを使用しonItemClick()ます。You Activityは、「通常」OnClickListeneronClick()-methodを公開する)とOnItemClickListenerの両方を実装します。は必要ありませんOnClickListener。前者だけです。

多くの場合、その場で匿名の実装を追加する方が読みやすくなります。

blv.setOnItemClickListener(new OnItemClickListener(){
  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // Your Code
  }
});
于 2012-08-05T19:01:36.473 に答える
0

現在のアクティビティで静的変数を宣言し、リストでアイテムがクリックされたときにその値をクリックされたアイテムに設定します。

public static String abc;   

 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {


            abc = cs[arg2];
            Intent intent = new Intent(context, AddNewBusiness.class);
            startActivity(intent);
        }
于 2012-08-05T19:03:19.310 に答える
0

これを試してみてください、あなたを助けるかもしれません...

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//here arg2 is the position of that item in the listview, which u can use for indexing the  string array, assumes `cs` is ur string array
    Intent addnbIntent = new Intent(NituachActivity.this,
            AddNewBuisness.class);
    addnbIntent.putExtra("value",cs[arg2])
    NituachActivity.this.startActivity(addnbIntent);    

}
于 2012-08-05T19:03:27.763 に答える