2016-03-25 8 views
0

でカスタムダイアログを使用します。その中は、私は、カスタムアダプタを使用してリストビューを作ってるんだ、リストビュー

が、私は各項目をクリックするとダイアログを表示したい(きっと、各リストで異なるダイアログ)。

ここに私のコードです。

MainActivity:

public class MainActivity extends AppCompatActivity { 
    ListView listView; 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ArrayList<MyCustomList> list = new ArrayList<MyCustomList>(); 
     list.add(new MyCustomList("a", R.string.jangho_string1, R.string.jangho_string2, R.drawable.jangho)); 
     list.add(new MyCustomList("b", R.string.dae_string1, R.string.dae_string2, R.drawable.dae)); 
     list.add(new MyCustomList("c", R.string.an_string1, R.string.an_string2, R.drawable.an)); 

     listView = (ListView)findViewById(R.id.listviewone); 

     MyCustomAdapter adapter = new MyCustomAdapter(getApplicationContext(), R.layout.listviewone, list); 
     listView.setAdapter(adapter); 
    } 
} 

MyCustomAdapter

public class MyCustomAdapter extends BaseAdapter { 

    Context ctx; 
    int layout; 
    ArrayList<MyCustomList> list; 
    LayoutInflater inf; 

    public MyCustomAdapter(Context ctx, int layout, ArrayList<MyCustomList> list){ 
     this.ctx = ctx; 
     this.layout = layout; 
     this.list = list; 

     inf = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public View getView(final int position, View convertView, ViewGroup parent){ 

     if(convertView == null){ 
      convertView = inf.inflate(layout, null); 
     } 

     final View.OnClickListener makeListener = new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       ((Activity)ctx).showDialog(position); 
      } 
     }; 

     convertView.setOnClickListener(makeListener); 

     return convertView; 
    } 
    protected Dialog onCreateDialog(int position){ 
     Dialog dialog = null; 

     switch (position){ 
      case 0: 
       break; 
     } 
     return dialog; 
    } 
} 

私は、Android Studioを使用しています。

答えて

0

あなたはダイアログを表示し、まず

public void showDialog(Context context, String something){ 
    Dialog dialog = new Dialog(context); 
    dialog.setContentView(R.layout.dialog_layout); 

    //Initialize your widgets from layout here 

    dialog.show(); 

    //You can dialog.dismiss() to close the dialog. 
} 
0

をクリックするlistItemのから値を渡す、リストビューを使用した場合ViewHolderを使用するためのメソッドを作成することができます。そして、ちょうどこれがカスタムダイアログを作成しようlistview.setOnItemClickListener

-1

使用

final Dialog dialog = new Dialog(MainActivity.this); 
     // Include dialog.xml file 
     dialog.setContentView(R.layout.forgotpassword); 
     // Set dialog title 
     dialog.setTitle("ALERT!!"); 
     // set values for custom dialog components - text, image and button 
     Button okbtn = (Button) dialog.findViewById(R.id.okbtn); 
     Button cancelbtn = (Button) dialog.findViewById(R.id.cancelbtn); 
     final EditText emailedittext = (EditText) dialog.findViewById(R.id.emailedittext); 
     dialog.show(); 
     dialog.getWindow().setSoftInputMode(
       WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
     // if decline button is clicked, close the custom dialog 
     cancelbtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Close dialog 
       dialog.dismiss(); 
      } 
     }); 
     okbtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String email=emailedittext.getText().toString(); 
       //do something more here 
      } 
     }); 

ここに参照してください: -

+0

http://coderzpassion.com/android-show-alertdialog/どこにこのコードでは、リストビューがありますか? –

関連する問題