2014-09-03 2 views
0

나는 ListAvtivity에 능숙 해 지려고합니다. 목록을 렌더링하는 코드를 작성했으며 목록에서 Item을 클릭하면 임의의 정보를 제공하는 활동으로 이동하게됩니다. 사용자가 목록에서 Item을 클릭하면 Dialog Box으로 표시되고 일부 정보는 전혀 새로운 것이 아니라 Activity으로 표시되는 방식으로 계산하려고합니다.

출처 :ListActivity와 대화 상자 연결

package com.mavenmaverick.listviewtest; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 
import android.widget.ListView; 

public class ActivityExample extends ListActivity{ 

static final String[] CHOICES = new String[]{ 

      "Mercury", 
      "Venus", 
      "Earth", 
      "Mars", 
      "Jupiter", 
      "Saturn", 
      "Uranus", 
      "Neptune", 
      "Pluto", 

}; 

@Override 
protected void onCreate(Bundle savedInstanceState) {      
     super.onCreate(savedInstanceState); 

     setListAdapter((ListAdapter) new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, CHOICES)); 
     getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
     getListView().setTextFilterEnabled(true); 
     getListView().setOnItemClickListener(new OnItemClickListener() 
     { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      switch (arg2) { 
      case 0: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 1: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 2: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 3: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 4: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 5: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 6: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 7: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      case 8: 
       startActivity(new Intent(ActivityExample.this,TestActivity.class)); 
       break; 
      default: 
       break; 
      } 

     } 

    }); 
} 
} 



enter image description here enter image description here

답변

0

사용자가 직접 onItemClick에서 콘텐츠를 가져올 수 있습니다. 이 작업을 수행하려면 parent.getItemAtPosition()을 사용하십시오. 문자열 배열로 ListView을 채우므로 getItemAtPosition은 문자열을 반환합니다.

코드는 다음과 같아야합니다

getListView().setOnItemClickListener(new OnItemClickListener() 
    { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
      long id) { 
       String content = (String)parent.getItemAtPosition(position); 
       // do something with the dialog 
       showDialog(content); 
      } 

    } 

당신은 좀 더 ListView에 주위에 구글해야한다.

0

당신은 당신의 onItemClick 내에서 대화 상자를 생성/사용하고 planet의 이름으로 제목을 설정하고 심지어 set the view 스타일에 대화의 당신이 원하는 수 있습니다.

샘플 :

@Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     switch (arg2) { 
     case 0: 
      Dialog dialog = new Dialog(this); 
      dialog.setTitle(CHOICES[args]); 
      dialog.setContentView(R.layout.your_layout_to_dialog); //<-- if you want to add some view to your dialog 
      dialog.show(); 
      break; 
0

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(Youractivity.this); 

      // Setting Dialog Title 
      alertDialog.setTitle("AlertDialog"); 

     switch (arg2) { 
      case 0: 
       break; 
      case 1: 

       break; 
      case 2: 

       break; 
      case 3: 

       break; 
      case 4: 

       break; 
      case 5: 

       break; 
      case 6: 

       break; 
      case 7: 

       break; 
      case 8: 

       break; 
      default: 
       break; 
      } 
// Setting Dialog Message 
      alertDialog.setMessage("A Planet in the Solar System"+arg2+"listview Item clicked"); 
      // Setting Positive "Yes" Button 
      alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog,int which) { 

       // Write your code here to invoke YES event 
       Toast.makeText(getApplicationContext(), "You clicked on YES", Toast.LENGTH_SHORT).show(); 
       } 
      }); 

     // Showing Alert Message 
      alertDialog.show(); 

      } 
+0

당신이 친구를 시도하면 나를 알려 보자는 ...... 당신에게 도움이 될 것입니다이 친구를 시도 –

+0

나는 다른 방법을 알아 냈 :) – CodeWalker