2017-06-15 54 views
0

我有strings.xml中的列表項或一組項。 我想在單擊項目時啓動Activity,但我的數組列表在strings.xml中定義。請幫忙。 比方說,項目編號一打開ActivityItem1等等...如何在點擊列表視圖中的項目時開始活動?

這是我的XML文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <AutoCompleteTextView 
     android:layout_width="match_parent" 
     android:layout_height="65dp" 
     android:hint="@string/search" 
     android:id="@+id/txtsearch"/> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/listView"> 

    </ListView> 

</LinearLayout> 

,這我的strings.xml

<resources> 

<array name="allduas"> 
     <item>Item Number 1</item> 
     <item>Item Number 2</item> 
     <item>Item Number 3</item> 
     <item>Item Number 4</item> 
     <item>Item Number 5</item> 
     <item>Item Number 6</item> 
     <item>Item Number 7</item> 
     <item>Item Number 8</item> 
     <item>Item Number 9</item> 
     <item>Item Number 10</item> 
     <item>Item Number 10</item> 
     <item>Item Number 12</item> 
     <item>Item Number 13</item> 
     <item>Item Number 14</item> 
     <item>Item Number 15</item> 
     <item>Item Number 16</item> 
     <item>Item Number 17</item> 
     <item>Item Number 18</item> 
     <item>Item Number 19</item> 
     <item>Item Number 20</item> 
     <item>Item Number 21</item> 
     <item>Item Number 22</item> 
     <item>Item Number 23</item> 
     <item>Item Number 24</item> 
     <item>Item Number 25</item> 
     <item>Item Number 26</item> 
     <item>Item Number 27</item> 
     <item>Item Number 28</item> 
     <item>Item Number 29</item> 
     <item>Item Number 30</item> 

    </array> 

</resources> 

這是我的java文件

public class AllDuasActivity extends Activity { 

    public ListView listView; 
    public String[] items; 
    public ArrayAdapter<String> adapter; 
    public AutoCompleteTextView ac; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.allduas); 

     ac = (AutoCompleteTextView)findViewById(R.id.txtsearch); 
     items = getResources().getStringArray(R.array.allduas); 
     listView = (ListView) findViewById(R.id.listView); 
     ArrayAdapter<String> adapter = new ArrayAdapter<>(this, 
          android.R.layout.simple_list_item_1, items); 
     listView.setAdapter(adapter); 
     ac.setAdapter(adapter); 
    } 


} 
+1

[如何開始按鈕點擊新活動]的可能重複(https://stackoverflow.com/questions/4186021/how-to-start-new-activity-on-button-click) –

回答

0
lv.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3) 
     { 
      if(position==1) 
      startActivity(this,Activity1.class); 
     } 
    }); 

試試這個。

0

使用ListView組件很容易。只需添加OnItemClickListener如下:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Intent intent = new Intent(context, DetailsActviity.class); 
       intent.putExtra("position", position) 
       context.startActivity(intent) 
      } 
     }); 
+0

我想要項目1啓動活動1和項目2啓​​動活動2,項目3啓動活動3等..... –

+0

大多數情況下,涉及ListView不需要爲每個列表項目啓動單獨的活動,因爲此方法有異味。你能詳細分享你的用例嗎? –

0
Class<?> cls = Class.forName(className); 

例如從XML文件獲取字符串的className,但它應該是全鏈路如com.myapp.MyClass。 然後用這個類名啓動Activity。

0
public void onItemClickListener() { 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent intent = null; 
      switch (position) { 
       case POSITION_ONE: 
        intent = new Intent(context, ActivityOne.class); 
        break; 
       case POSITION_TWO: 
        intent = new Intent(context, ActivityTwo.class); 
        break; 
       case POSITION_THREE: 
        intent = new Intent(context, ActivityThree.class); 
        break; 
      } 
      context.startActivity(intent) 
      } 
     } 
    }); 
} 

您可以擁有與活動一樣多的開關盒。

相關問題