2017-06-15 10 views
0

私はリストアイテムまたは項目の配列をstrings.xmlに持っています。 アイテムがクリックされたが、配列リストがstrings.xmlで定義されている場合、Activityを開始したいと考えています。助けてください。 リストビューの項目をクリックしたときにアクティビティを開始するにはどうすればよいですか?

...のは、項目番号一つは、そうで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ファイルから文字列クラス名を取得しますが、それは、そのような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) 
      } 
     } 
    }); 
} 

アクティビティの数だけスイッチケースを持つことができます。

関連する問題