2016-09-23 5 views
0

こんにちは私はアラートダイアログにリストビューを追加しようとしています。最初のアラートダイアログで[OK]ボタンをクリックすると、リストビューが表示される必要がある第2のダイアログボックスが表示されます。私が午前問題は、私は私はあなたがListViewの内側を見せたいと思いますフラグメント複数のアラートダイアログ(リストビュー)

public class ResponseFragment extends Fragment { 
 
     ListView list; 
 
     private String urlString; 
 
     ArrayList<HashMap<String, String>> oslist = new ArrayList<HashMap<String, String>>(); 
 
     @Override 
 
     public void onCreate(Bundle savedInstanceState) { 
 
      super.onCreate(savedInstanceState); 
 
     } 
 
    
 
     @Override 
 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
           Bundle savedInstanceState) { 
 
      View v = inflater.inflate(R.layout.fragment_response, container, false); 
 
      list=(ListView)v.findViewById(R.id.listviewResp); 
 
      urlString = "http://172.20.10.5:1012/easyQ.svc/rest/reasons"; 
 
      new getReasons().execute(urlString); 
 
    
 
    
 
    
 
    
 
      return v; 
 
     } 
 
    
 
     private class getReasons extends AsyncTask<String, Void, String> { 
 
      protected String doInBackground(String... strings) { 
 
       String stream; 
 
       String urlString = strings[0]; 
 
       HTTPDataHandler hh = new HTTPDataHandler(); 
 
       stream = hh.GetHTTPData(urlString); 
 
       // Return the data from specified url 
 
       System.out.println(stream); 
 
       return stream; 
 
      } 
 
    
 
      protected void onPostExecute(String stream) { 
 
       if (stream != null) 
 
       { 
 
        try 
 
        { 
 
         JSONObject object = new JSONObject(stream); 
 
         JSONArray array = object.getJSONArray("reasonsResult"); 
 
    
 
         for(int i = 0 ; i < array.length(); i++) { 
 
          JSONObject reasonObj = array.getJSONObject(i); 
 
          String ID = reasonObj.getString("reason_leaving_id"); 
 
          String reason = reasonObj.getString("description"); 
 
    
 
          HashMap<String, String> map = new HashMap<String, String>(); 
 
          map.put("description", reason); 
 
          map.put("id", ID); 
 
          oslist.add(map); 
 
         } 
 
    
 
         for(int i = 0; i < oslist.size(); i++) 
 
         { 
 
    
 
          ListAdapter adapter = new SimpleAdapter(getActivity(), oslist, 
 
            R.layout.dialog_list, 
 
            new String[] { "description"}, new int[] { 
 
            R.id.txtResp}); 
 
    
 
          // alertDialog.setView(inflater.inflate(R.layout.fragment_response,null)); 
 
          list.setAdapter(adapter); 
 
          list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
 
    
 
           @Override 
 
           public void onItemClick(AdapterView<?> parent, View view, 
 
                 int position, long id) { 
 
            String branchId = oslist.get(+position).get("id"); 
 
            final SessionV globalVariable = (SessionV) getActivity().getApplicationContext(); 
 
            globalVariable.setBranchId(branchId); 
 
            Fragment fragment = null; 
 
            fragment = new HomeFragment(); 
 
            getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.container_body, fragment).commit(); 
 
    
 
           } 
 
          }); 
 
         } 
 
    
 
         AlertDialog alertDialog = new AlertDialog.Builder(
 
           getActivity()).create(); 
 
         alertDialog.setTitle("easyQ"); 
 
         alertDialog.setMessage("reason"); 
 
         LayoutInflater inflater = (getActivity()).getLayoutInflater(); 
 
         final View dialogView=inflater.inflate(R.layout.fragment_response,null); 
 
         alertDialog.setView(dialogView); 
 
         alertDialog.show(); 
 
         alertDialog.show(); 
 
    
 
    
 
        } 
 
        catch(JSONException e) 
 
        { 
 
         e.printStackTrace(); 
 
        } 
 
       } 
 
      } 
 
     } 
 
    
 
    }

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 
    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listviewResp" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingTop="15dp" 
     android:layout_centerVertical="true" 
     android:layout_alignParentStart="true" /> 
</LinearLayout> 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 
    <TextView 
     android:id="@+id/txtResp" 
     android:layout_width="match_parent" 
     android:layout_height="?listPreferredItemHeightSmall" 
     android:checkMark="?android:attr/listChoiceIndicatorSingle" 
     android:gravity="center_vertical" 
     android:paddingLeft="?listPreferredItemPaddingLeft" 
     android:paddingRight="?listPreferredItemPaddingRight" 
     android:textAppearance="?textAppearanceListItemSmall" /> 

</LinearLayout> 
+0

'fragment_response'レイアウトのコードを共有します。それはリストビューですか? –

+0

zahidul私は2つのxmlレイアウトを共有しました –

答えて

0

にその背後に示すリストビューで空の警告ボックスを取得していますということですAlertDialog。したがって、コードの一部を変更する必要があります。

第一:

あなたはfragment_responseレイアウトからリストビューを膨らませます。これは必要ではない。 onCreateView()メソッドでは、新しいオブジェクトListViewを初期化するだけです。

置き換えます

第二
list = new ListView(getActivity()); 

ことで

list=(ListView)v.findViewById(R.id.listviewResp); 

を:

変更このコード:によって

AlertDialog alertDialog = new AlertDialog.Builder(
     getActivity()).create(); 
alertDialog.setTitle("easyQ"); 
alertDialog.setMessage("reason"); 
LayoutInflater inflater = (getActivity()).getLayoutInflater(); 
final View dialogView=inflater.inflate(R.layout.fragment_response,null); 
alertDialog.setView(dialogView); 
alertDialog.show(); 
alertDialog.show(); 
AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create(); 
alertDialog.setTitle("easyQ"); 
alertDialog.setMessage("reason"); 
alertDialog.setView(listView); 
alertDialog.show(); 

他のコードがOKならば、うまくいくと思います。

+0

ありがとう!!!! :) –

+0

歓迎します。それがうまく動作することを願っています。 :) –

関連する問題