2016-05-16 18 views
0

AlertDialogをFragmente.Comoで使用することを考えています。extendsクラスは、このコードをフラグメントクラスで動作させることができますか?

フラグメントを使用する際に問題が発生していますが、フラグメントがどのように機能するのかまだ分かりません。AlertDialogチェックボックスフラグメント

final AlertDialog.Builder builderDialog = new AlertDialog.Builder(getActivity()); 

import android.app.AlertDialog; 
import android.app.Fragment; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.ListView; 
import android.widget.TextView; 

import com.caseb.case_beauty_.R; 

import java.util.ArrayList; 
import java.util.List; 

public class MainFragment extends Fragment { 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_main, 
       container, false); 
     Button btnVersao = (Button) view.findViewById(R.id.btnEnviaSolicita); 
     btnVersao.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       List<String> listItems = new ArrayList<String>(); 

       listItems.add("Item1"); 
       listItems.add("Item2"); 
       listItems.add("Item3"); 

       final CharSequence[] list = listItems.toArray(new CharSequence[listItems.size()]); 


       View openDialog = (View) findViewById(R.id.openDialog); 
       openDialog.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 

         // Intialize readable sequence of char values 
         final CharSequence[] dialogList = list; 
         final AlertDialog.Builder builderDialog = new AlertDialog.Builder(MainFragment.this); 
         builderDialog.setTitle("Select Item"); 
         int count = dialogList.length; 
         boolean[] is_checked = new boolean[count]; 

         // Creating multiple selection by using setMutliChoiceItem method 
         builderDialog.setMultiChoiceItems(dialogList, is_checked, 
           new DialogInterface.OnMultiChoiceClickListener() { 
            public void onClick(DialogInterface dialog, 
                 int whichButton, boolean isChecked) { 
            } 
           }); 

         builderDialog.setPositiveButton("OK", 
           new DialogInterface.OnClickListener() { 
            @Override 
            public void onClick(DialogInterface dialog, int which) { 

             ListView list = ((AlertDialog) dialog).getListView(); 
             // make selected item in the comma seprated string 
             StringBuilder stringBuilder = new StringBuilder(); 
             for (int i = 0; i < list.getCount(); i++) { 
              boolean checked = list.isItemChecked(i); 

              if (checked) { 
               if (stringBuilder.length() > 0) stringBuilder.append(","); 
               stringBuilder.append(list.getItemAtPosition(i)); 


              } 
             } 

         /*Check string builder is empty or not. If string builder is not empty. 
          It will display on the screen. 
         */ 
             if (stringBuilder.toString().trim().equals("")) { 

              ((TextView) findViewById(R.id.text)).setText("Click here to open Dialog"); 
              stringBuilder.setLength(0); 

             } else { 

              ((TextView) findViewById(R.id.text)).setText(stringBuilder); 
             } 
            } 
           }); 

         builderDialog.setNegativeButton("Cancel", 
           new DialogInterface.OnClickListener() { 
            @Override 
            public void onClick(DialogInterface dialog, int which) { 
             ((TextView) findViewById(R.id.text)).setText("Click here to open Dialog"); 
            } 
           }); 
         AlertDialog alert = builderDialog.create(); 
         alert.show(); 

        } 
       }); 
      } 
     }); 
     return view; 
    } 
} 
+0

としてそれはAlertDialogを表示していないのですか? –

+0

英語で書いてください... –

+0

アンドロイドスタジオは、それがこのエラーを持っていると言う::「ビルダー(android.content.context)は、ビルダーでの活動に適用することはできない」 このライン: 「最終AlertDialog.Builder builderDialog =新しいですAlertDialog.Builder(MainFragment.this); ' –

答えて

1

変更

final AlertDialog.Builder builderDialog = new AlertDialog.Builder(MainFragment.this); 

問題は何ですか?それ AlertDialog.BuilderニーズContext