2017-10-24 17 views
-1

私はListViewを持っていて、私はListViewのクリックした値に応じて関数を実行したいと思っています。私はそれをやろうとしていたが、適切なコードを知りません。 ..私のコードをチェックしてください。onClickをlistviewに追加しますか?

public class SubCategory extends AppCompatActivity implements View.OnClickListener { 

private ListView listView; 
String buttonType; 
ArrayAdapter adapter; 

static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana"}; 
static final String[] NAMES = new String[] { "Sachin", "Brett", "Shane", "Zaheer"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sub_category); 



    Bundle bundle = getIntent().getExtras(); 
    if(bundle != null) { 
     buttonType = bundle.getString("BUTTON_CLICKED"); 
    } 
    if(buttonType != null && buttonType.equals("A")) { 
     adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, FRUITS); 
    } else if(buttonType != null && buttonType.equals("B")) { 
     adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, NAMES); 
    } 
    listView = (ListView)findViewById(R.id.listview); 
    listView.setAdapter(adapter); 
} 

    public void getList() { 

     Toast.makeText(listView.getContext(), Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.listview: 
       getList(); 
       break; 
    } 
} 
} 
+2

使用 'AdapterView.OnItemClickListener'はρяσѕρєя[email protected] –

+0

あなたは私のコードを編集して表示することができますクリックしますか? –

答えて

2

1.add次の手順に従い活動のOnCreateの方法では、このようなリスナーをクリックしてリストビューするために、リスナーをクリックして追加するには、この

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     String value=""; 
     if(!TextUtils.isEmpty(buttonType) && buttonType.equals("A")) { 
      value=FRUITS[position]; 
     } else if(!TextUtils.isEmpty(buttonType) && buttonType.equals("B")) { 
      value=NAMES[position]; 
     } 
    // you can get value in "value" 
     showToast(value); 
    } 
}); 
public void showToast(String value) { 

    Toast.makeText(this,value, Toast.LENGTH_LONG).show(); 

} 
+0

値をトーストするコードを追加するには? –

+0

ありがとう...私はそれを得た。 –

+0

@SumitPal私は自分の答えを更新しました。 –

3
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     list.get(position).GET_INFORMATION(); //GET_INFORMATION will be the method in your POJO class 
    } 
}); 
+0

この[screenshot](https://www.dropbox.com/s/aryb3b50a4mt159/error.png?dl=0)を確認する際にエラーが発生します。 –

+0

あなたはこのコードを書いていますか?これは、listView.setAdapter(アダプタ)の後のアクティビティクラスにあります。 –

+0

はい、私はちょうどlistView.setAdapter(アダプタ)の下にそれを書いています。 onCreat機能の下にあります。 –

1

を試してみてください。活動の

listView.setOnItemClickListener(this);

2.Implement OnItemClickListener。

public class Main2Activity extends AppCompatActivity implements AdapterView.OnItemClickListener { 

3.アクティビティのonItemClickメソッドをオーバーライドします。リストビューの列を取得する

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
    //Call method here 
} 
代わりに `` OnClickListenerの
+0

私はそれを得た。ご支援ありがとうございます。 :) –

関連する問題