2013-12-08 39 views
-1

我有一个列表视图代码,当单击列表视图选项时,会产生一个敬酒信息。 MainActivity.java从列表视图中传递意图

public class MainActivity extends ListActivity { 

    static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana", 
      "Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit", 
      "Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" }; 

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

     // no more this 
     // setContentView(R.layout.list_fruit); 

     setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_main,FRUITS)); 

     ListView listView = getListView(); 
     listView.setTextFilterEnabled(true); 

     listView.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
       // When clicked, show a toast with the TextView text 
       Toast.makeText(getApplicationContext(), 
       ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 

    } 

} 

XML文件是:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:textSize="20sp" > 
</TextView> 

我想做的事是通过一个意图,当我点击列表视图选项中的一个选项显示

这是我到目前为止试过的代码

String str = ((TextView) view).getText().toString(); 
       Log.i(str, str + ""); 
//    str2 = FRUITS[Position]; 
       String s = str + ".class"; 
       Log.d(s, s + ""); 
       Intent myintent = new Intent(getApplicationContext(), ListViewSampleClass.class); 
       startActivity(myintent); 
+0

这是什么问题? – Emmanuel

+0

@Emmanuel请仔细阅读最后一行 –

+0

我的意思是说“迄今为止您尝试过什么?,这是一个多次提问的问题,您没有显示任何研究成果” – Emmanuel

回答

1

试试这个方法

listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // This will call another activity using intent 
      Intent myintent = new Intent(getApplicationContext(), youcalssname.class); 
      startActivity(myintent); 

     } 
    }); 
+0

这是工作。但我如何专门去一个预期的观点。例如,我选择了苹果,然后视图将转到apple.class。 –

+0

您需要为'位置“放置开关盒。 'onItemClick()'中的'position'参数代表被点击的项目。因此,让我们假设如果苹果位置是2,您可以根据该位置显示课程。如果您发现任何困难,请告诉我。 –

+0

获取您可以使用的选定项目的名称'FRUITS [position]'这将给出已经选择的项目的名称 –

1

公共类MainActivity扩展ListActivity {

static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana", 
     "Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit", 
     "Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple" }; 

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

    // no more this 
    // setContentView(R.layout.list_fruit); 

    setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_main,FRUITS)); 

    ListView listView = getListView(); 
    listView.setTextFilterEnabled(true); 

    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Toast.makeText(getApplicationContext(), 
      ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
      passIntentToAnotherActivity(); 
     } 
    }); 

} 

private void passIntentToAnotherActivity() { 
    Intent myIntent = new Intent(); 
    ... 
    // Rest of your intent code goes here. 
} 

}