0

4 개의 텍스트 필드를 채우는 arrayadapter가 있습니다. getView 메소드에서 텍스트 필드에 값을 채 웁니다. android.content.res.Resources $ NotFoundException : 문자열 리소스 ID # 0x11. 교정이 필요한 시점으로 안내해주십시오.

holder.tvAmount.setText(Double.toString(ticketArray.get(position).getTicketObject().getTotalAmount())) ; 

이러한 잠재적 인 문제를 가지고있다 : 다음

ArrayAdapter와 코드

public class AdapterTicketList extends ArrayAdapter<POJO_Ticket> { 
Context context; 
ArrayList<POJO_Ticket> ticketArray; 
LayoutInflater vi; 

public AdapterTicketList(Context context , ArrayList<POJO_Ticket> ticketArray) {  
    super(context, 0, ticketArray);  
    this.ticketArray = new ArrayList<POJO_Ticket>();  
    this.ticketArray.addAll(ticketArray); 
    this.context =context; 

    vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

private class ViewHolder { 
    TextView tvTicketID; 
    TextView tvCreationHour; 
    TextView tvTableNumber;  
    TextView tvAmount;  
    } 

public View getView(final int position, View convertView, ViewGroup parent) {  
    ViewHolder holder;  
    holder = new ViewHolder(); 
    if (convertView == null) {     
     convertView = vi.inflate(R.layout.rowticket, null); 
     holder.tvTicketID = (TextView) convertView.findViewById(R.id.tvTicketID); 
     holder.tvCreationHour = (TextView) convertView.findViewById(R.id.tvCreationHour); 
     holder.tvTableNumber = (TextView) convertView.findViewById(R.id.tvTableNumber); 
     holder.tvAmount = (TextView) convertView.findViewById(R.id.tvQuantity); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    }  
    Ticket ticket =ticketArray.get(position).getTicketObject(); 

    Log.i("AdapterTicketList"," ticket id : " + ticket.getId()); 
    holder.tvTicketID.setText(String.valueOf(ticket.getId())) ; 
    holder.tvCreationHour.setText(String.valueOf(ticket.getCreationHour())) ; 
    holder.tvTableNumber.setText(String.valueOf(ticket.getTableNumber())) ; 
    holder.tvAmount.setText(String.valueOf((ticket.getTotalAmount()))) ; 
    return convertView; 
    } 

} 당신이 문자열에 숫자 값을 변환하기 때문에

01-09 00:11:15.337: E/AndroidRuntime(10204): FATAL EXCEPTION: main 
01-09 00:11:15.337: E/AndroidRuntime(10204): java.lang.NullPointerException 
01-09 00:11:15.337: E/AndroidRuntime(10204): at com.example.restaurent.AdapterTicketList.getView(AdapterTicketList.java:59) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.AbsListView.obtainView(AbsListView.java:2040) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.ListView.makeAndAddView(ListView.java:1772) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.ListView.fillDown(ListView.java:672) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.ListView.fillFromTop(ListView.java:732) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.ListView.layoutChildren(ListView.java:1625) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.AbsListView.onLayout(AbsListView.java:1870) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.View.layout(View.java:11418) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewGroup.layout(ViewGroup.java:4328) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1652) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1641) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.onLayout(LinearLayout.java:1417) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.View.layout(View.java:11418) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewGroup.layout(ViewGroup.java:4328) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1652) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1510) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.onLayout(LinearLayout.java:1415) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.View.layout(View.java:11418) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewGroup.layout(ViewGroup.java:4328) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.FrameLayout.onLayout(FrameLayout.java:443) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.View.layout(View.java:11418) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewGroup.layout(ViewGroup.java:4328) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1652) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1510) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.LinearLayout.onLayout(LinearLayout.java:1415) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.View.layout(View.java:11418) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewGroup.layout(ViewGroup.java:4328) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.widget.FrameLayout.onLayout(FrameLayout.java:443) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.View.layout(View.java:11418) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewGroup.layout(ViewGroup.java:4328) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.os.Looper.loop(Looper.java:137) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at android.app.ActivityThread.main(ActivityThread.java:4441) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at java.lang.reflect.Method.invoke(Method.java:511) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
01-09 00:11:15.337: E/AndroidRuntime(10204): at dalvik.system.NativeStart.main(Native Method) 

답변

0

이 줄은 올바른입니다 숫자 값을 가져 오는 것으로 보입니다.

,210
holder.tvTicketID.setText(ticketArray.get(position).getTicketObject().getId()) ; 
holder.tvCreationHour.setText(ticketArray.get(position).getTicketObject().getCreationHour()) ; 
holder.tvTableNumber.setText(ticketArray.get(position).getTicketObject().getTableNumber()) ; 

해결 방법 : 당신은 String 또는 setText()에 대한 적절한 R.string.xxx 정수를 통과해야합니다.

그래서 사용

holder.tvTicketID.setText(String.valueOf(ticketArray.get(position).getTicketObject().getId())); 
// etc 

(당신은 또한 반복적으로 가져 오는 것이 아니라 로컬 변수에 ticketArray.get(position).getTicketObject()을 저장하는 것이 좋습니다.)

+0

감사 샘. 알았어 – user1822729

+0

하지만 샘 .. 다른 문장은 문자열로 변환 한 후 작동 중이다. holder.tvAmount.setText (Double.toString (ticket.getTotalAmount())); 가 작동하지 않습니다. – user1822729

+0

좋습니다. 그렇다면'ticket.getTotatAmount()'는 double이 아닐 수도 있습니다. 'holder.tvAmount.setText (String.valueOf (ticket.getTotalAmount()));'를 시도해보십시오. 작동하지 않는다면 새로운 LogCat 오류를 게시하십시오. – Sam