2016-04-22 10 views
0

こんにちは私はリストビューに自分のonclicklistnerを設定しようとしています。たとえば、ユーザーがリストビューのオプションの1つを押すことができるように、リストとそれは電話をかけるか、ウェブサイトを開くなど...現在、私はこの設定をしているだけで簡単なボタンにリンクされているが、今私は少し私のディスプレイをきれいにしたい。ListView onItemClickListenerを特定のインテントに設定する

以下のコードを表示しています。これは、リストビューを表示していて、それが表示されているので、インテントを追加する方法を理解する必要があります。位置に応じて動作させることはできますか、タグを追加する必要はありますか?すべての例が最も高く評価され、私は見ていきます。答えが見つかると私は自分の投稿を更新します。

public class ContactUs extends AppCompatActivity { 

ListView contactUs; 

String[] feature= {"Phone", "Email", "Website", "Opening Times"}; 
String[] click = {"click", "click", "click", "click", "click"}; 

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



    contactUs = (ListView)findViewById(R.id.contactUsListView); 




    ListViewAdapter adapter = new ListViewAdapter(this,feature,click); 
    contactUs.setAdapter(adapter); 


    contactUs.setOnItemClickListener(new Itemlist()); 

} 

class Itemlist implements AdapterView.OnItemClickListener { 


    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 


    } 



    } 
} 

あなたはこれを変更しない場合、私は私のリストビュー

call.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent callIntent = new Intent(Intent.ACTION_CALL); 
      callIntent.setData(Uri.parse("tel:123456789")); 

      if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 

       return; 
      } 
      startActivity(callIntent); 


     } 
    }); 

答えて

0

上の最初の項目に転送したい私は現在、コールと呼ばれるボタンを使用したコードの小片、配列の実行時に、スイッチケースの位置を特定することができます。この

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    switch (position) { 
     case 0: 
      Intent callIntent = new Intent(Intent.ACTION_CALL); 
      callIntent.setData(Uri.parse("tel:123456789")); 

      if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
       break; 
      } 
      startActivity(callIntent); 
      break; 
     case 1: 
      // Add the intent of choice 
      break; 
     case 2: 
      // Add the intent of choice 
      break; 
     case 3: 
      // Add the intent of choice 
      break; 
     case 4: 
      // Add the intent of choice 
      break; 
    } 

} 
0
@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

switch (position) { 
    case 0: 
     //Add intent for Phone   
     break; 
    case 1: 
     //Add intent for Email 
     break; 
    case 2: 
     //Add intent for Website 
     break; 
    case 3: 
     //Add intent for Opening Time 
     break; 

    } 

} 
+0

は、あなたの答えをありがとう言ってやるが、私は方法を発見し、私の質問を更新する – james

0

getViewメソッド()メソッドでは、その優れたあとでListViewAdapterでarray.It doesntの効果の位置

を変更した場合のでListViewAdapter内部getViewメソッドでビューにタグを追加するには、何かのようにそこにタグを追加し、view.getTag(でそれを使用することができるように活動して取得)し、スイッチケースに使用して@Max Zavernutiyが

0
@Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     if (contactUs.getAdapter().getItem(position).equals("Phone")){ 



      Intent callIntent = new Intent(Intent.ACTION_CALL); 
      callIntent.setData(Uri.parse("tel:123456789")); 

      if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 

       return; 
      } 

      startActivity(callIntent); 

     } 
関連する問題