2017-02-12 4 views
0

나는 listview가 있습니다. 각 항목을 클릭하면 편집 텍스트로 경고 대화 상자를 표시하고 입력 값을 정수 변수에 저장합니다. 그러나 오류가 표시됩니다. 입력 텍스트를 변환하지 않으면 잘 작동하지만 Integer.parseInt()를 사용하면 응용 프로그램이 충돌합니다. 여기에 내 코드와 logcat이야.

// 코드

/** 
* A simple {@link Fragment} subclass. 
*/ 
public class All extends Fragment { 

    //EXPERIMENTAL CODE STARTS 
    private VolleySingleton volleySingleton; 
    private RequestQueue requestQueue; 
    private RecyclerView allItemList; 
    private ArrayList<Items> listItems=new ArrayList<>(); 
    private AdapterItemAll adapterItemAll; 
    public static int ticketNum=5; 
    DatabaseHelper myDb; 
    public int quantity=0; 
    public float totalPrice=0; 
    private String title; 
    private boolean update; 
    private String name; 

    String strQuantity; 

    EditText quantityInput; 


    //SETTING IMAGE TEST CODE STARTS 





    //public static final String URL_API="http://www.delaroystudios.com/images/teams.json"; 

        //ENDS 
     public All() { 
     // Required empty public constructor 
       } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view=inflater.inflate(R.layout.fragment_all, container, false); 

//  allItemList=(RecyclerView) view.findViewById(R.id.allItemsList); 
//  allItemList.setLayoutManager(new LinearLayoutManager(getActivity())); 
//  adapterItemAll=new AdapterItemAll(getActivity()); 
//  allItemList.setAdapter(adapterItemAll); 




     //****LISTVIEW EXPERIMENT STARTS 
      ListView listView=(ListView) view.findViewById(R.id.allItemsList); 
      myDb=new DatabaseHelper(getContext()); 

      ArrayList<String> theList=new ArrayList<>(); 
     final Cursor data=myDb.getItemContents(); 

     if(data.getCount()==0){ 
      Toast.makeText(getActivity(),"List is Empty",Toast.LENGTH_SHORT).show(); 
     }else{ 
      while(data.moveToNext()){ 
       theList.add(0,data.getString(1)); 

       ListAdapter listAdapter=new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1,theList); 
       listView.setAdapter(listAdapter); 
      } 
     } 




     //LIST ITEM ONCLICK ADD QUANTITY TO TICKET STARTS 
     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       name = (String) parent.getItemAtPosition(position); 


       //ALERT DECLARE 

       AlertDialog.Builder builder=new AlertDialog.Builder(getActivity()); 
       builder.setTitle("Item Quantity"); 
       builder.setIcon(R.mipmap.ic_receipt_black_24dp); 
       builder.setMessage("Enter Item Quantity"); 

       quantityInput=new EditText(getContext()); 
       builder.setView(quantityInput); 
       //SET POSITIVE 

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


         strQuantity = quantityInput.getText().toString(); 
         quantity=Integer.valueOf(strQuantity); 

         Toast.makeText(getActivity(),quantity,Toast.LENGTH_LONG).show(); 

         Toast.makeText(getActivity(),"Enter the correct quantity",Toast.LENGTH_LONG).show(); 

        } 
       }); 


       AlertDialog ad=builder.create(); 
       ad.show(); 
       //ENDS 


       //updating quantity 
       update=myDb.updateTicketQuantity(name,quantity); 


       Toast.makeText(getActivity(),"Total "+quantity+ "Items Added to the Ticket",Toast.LENGTH_LONG).show(); 

      } 
     }); 
     //ENDS 

     //LISTVIEW EXPERIMENT ENDS 




     return view; 
    } 


    public int quantityIncrease(int quantity){ 

     this.quantity=quantity+1; 
     int qt=this.quantity; 

     return qt; 

    } 

} 

// 오류 로그

E/AndroidRuntime: FATAL EXCEPTION: main 
        android.content.res.Resources$NotFoundException: String resource ID #0x42 
         at android.content.res.Resources.getText(Resources.java:230) 
         at android.widget.Toast.makeText(Toast.java:265) 
         at com.soumya.possystem.All$1$1.onClick(All.java:142) 
         at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157) 
         at android.os.Handler.dispatchMessage(Handler.java:99) 
         at android.os.Looper.loop(Looper.java:137) 
         at android.app.ActivityThread.main(ActivityThread.java:5041) 
         at java.lang.reflect.Method.invokeNative(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:511) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
         at dalvik.system.NativeStart.main(Native Method) 
+0

'Toast.makeText (getActivity(), 한 String.valueOf (양, Toast.LENGTH_LONG) .show();' –

+0

Ok. 하지만 정수로 변환하고 수량 변수에 저장해야합니다. 토스트에 그들을 보여주는 것은 내 목표가 아닙니다. –

+0

OOPS !! 내 나쁜 형. 나는 당신의 요점을 놓쳤다. 지금은 효과가 있습니다. 감사. –

답변

1

이 시도 :)

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


        strQuantity = quantityInput.getText().toString(); 

        quantity= Integer.parseInt(strQuantity); //int 

        Toast.makeText(getActivity(),String.valueOf(quantity),Toast.LENGTH_LONG).show(); //error here 

        Toast.makeText(getActivity(),"Enter the correct quantity",Toast.LENGTH_LONG).show(); 

       } 
      }); 
+0

나는 여분의 String 변수를 사용할 필요가 없다고 생각한다. Toast에 보여줄 필요가있다. 그래서 그것을 makeText 메쏘드에 전달할 때'String.valueOf (quantity)'를 사용하자. –

+0

thnkx @ ρяσѕρєяK 제안을 위해 – rafsanahmad007

관련 문제