0

enter image description hereAlertDialog selectedItem이 null입니다.

ListwithImage 목록에 대한 코드가 있습니다. 하지만 대화 상자에서 onclickItem을 표시하려고 시도하지만 대화 상자에 null이 표시됩니다. onclickItemListener를 구현합니다. 나는 이미지없이이 코드를 시도했다. Dialog는 선택된리스트를 보여준다. 하지만 이미지로 시도하면 효과가 없습니다.

MyCode :

public class MainActivity extends Activity { 
    EditText edittext; 
    ListView listview; 

    String[] text = { "One", "Two", "Three", "Four", "Five", "Six", "Seven", 
       "Eight", "Nine", "Ten" }; 

      int[] image = { R.drawable.one, R.drawable.two, R.drawable.three, 
       R.drawable.four, R.drawable.five, R.drawable.six, R.drawable.seven, 
       R.drawable.eight, R.drawable.nine, R.drawable.ten }; 

      int textlength = 0; 

      ArrayList<String> text_sort = new ArrayList<String>(); 
      ArrayList<Integer> image_sort = new ArrayList<Integer>(); 

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

     edittext = (EditText) findViewById(R.id.EditText01); 
      listview = (ListView) findViewById(R.id.ListView01); 
      listview.setAdapter(new MyCustomAdapter(text, image)); 

      edittext.addTextChangedListener(new TextWatcher() 
      { 

      public void afterTextChanged(Editable s) 
      { 

      } 

      public void beforeTextChanged(CharSequence s, int start, 
      int count, int after) 
      { 

      } 

      public void onTextChanged(CharSequence s, int start, 
      int before, int count) 
      { 

      textlength = edittext.getText().length(); 
      text_sort.clear(); 
      image_sort.clear(); 

      for (int i = 0; i < text.length; i++) 
      { 
      if (textlength <= text[i].length()) 
      { 
       if (edittext.getText().toString(). 
      equalsIgnoreCase((String) text[i].subSequence(0, textlength))) 
       { 
       text_sort.add(text[i]); 
       image_sort.add(image[i]); 
       } 
      } 
      } 

      listview.setAdapter(new MyCustomAdapter 
      (text_sort, image_sort)); 

      listview.setOnItemClickListener(new OnItemClickListener(){ 

       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long rowId) { 
        // TODO Auto-generated method stub 
        listview.getItemAtPosition(position); 
        AlertDialog.Builder adb = new AlertDialog.Builder(
          MainActivity.this); 
          adb.setTitle("List"); 
          adb.setMessage(" selected Item is=" 
          + listview.getItemAtPosition(position)); 
          adb.setPositiveButton("Ok", null); 
          adb.show();  

       } 

      }); 

      } 
      }); 
     } 

     class MyCustomAdapter extends BaseAdapter 
     { 

      String[] data_text; 
      int[] data_image; 

      MyCustomAdapter() 
      { 

      } 

      MyCustomAdapter(String[] text, int[] image) 
      { 
      data_text = text; 
      data_image = image; 
      } 

      MyCustomAdapter(ArrayList<String> text, ArrayList<Integer> image) 
      { 

      data_text = new String[text.size()]; 
      data_image = new int[image.size()]; 

      for(int i=0;i<text.size();i++) 
      { 
      data_text[i] = text.get(i); 
      data_image[i] = image.get(i); 
      } 

      } 

      public int getCount() 
      { 
      return data_text.length; 
      } 

      public String getItem(int position) 
      { 
      return null; 
      } 

      public long getItemId(int position) 
      { 
      return position; 
      } 

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

      LayoutInflater inflater = getLayoutInflater(); 
      View row; 

      row = inflater.inflate(R.layout.listview, parent, false); 

      TextView textview = (TextView) row.findViewById(R.id.TextView01); 
      ImageView imageview = (ImageView) row 
      .findViewById(R.id.ImageView01); 

      textview.setText(data_text[position]); 
      imageview.setImageResource(data_image[position]); 

      return (row); 

      } 
     } 

답변

1

당신에 잘못된 값을 받고 귀하의 경고 잘못

+listview.getItemAtPosition(position)); 

바로

adb.setMessage(" selected Item is="+text_sort.get(position).toString()); 
+0

Ankitmakwana : 나는 당신의 코드를 실행,하지만 난 오류가있어 : 아직 대답을 – Ram

+0

을하고? 재미 :) – waqaslam

+0

여전히 오류가 발생하고 계십니까? –

1

이 변경 시도 :

을 이에

:

adb.setMessage(" selected Item is= " + text_sort.get(position)); 
+0

완벽하게 작동합니다. 그러나 image_sort를 얻는 방법? – Ram

+0

'image_sort.get (position)'을 사용하면 이미지의 리소스 ID (int)가 나타납니다. – waqaslam

+0

이미지가 표시되지 않습니다 .... – Ram