2015-01-25 3 views
0

Я новичок в Android и нашел так много полезных тем в списках. Но почему-то я не могу открыть новое действие в списке элементов.Новая активность, не открывшаяся по списку Элемент Click

До сих пор Мое приложение имеет 4 класса.

  1. брызгозащитным работает отлично
  2. MyActivity- Работает отлично
  3. Poems- работает отлично
  4. тест

Till Стихотворения мое приложение работает нормально. Но в стихах, когда я нажимаю элемент списка, он ничего не делает.

Вот мой код. Poems.class

package apps.panky.poemsnrhymes; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 


public class Poems extends ActionBarActivity implements AdapterView.OnItemClickListener { 

ListView list; 
String poems[] = {"Aiken Drum", "A Was an Apple Pie", "A Wise Old Owl", "A-Tisket, A-Tasket"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    /** Hiding Title bar of this activity screen */ 
    getWindow().requestFeature(Window.FEATURE_NO_TITLE); 

    /** Making this activity, full screen */ 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_poems); 

    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, poems); 
    list = (ListView) findViewById(R.id.listView); 
    list.setAdapter(adapter); 
    list.setTextFilterEnabled(true); 
} 

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    switch (position) { 
     case 0: 
      Intent myIntent = new Intent(Poems.this, test.class); 
      startActivity(myIntent); 
      break; 

     case 1: 
      //code specific to 2nd list item 
      Intent myIntent1 = new Intent(Poems.this, test.class); 
      startActivity(myIntent1); 
      break; 
     default: 
      break; 
    } 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_poems, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

} 

Вот activity_poems расположение:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:background="@drawable/bg" 
tools:context="apps.panky.poemsnrhymes.Poems"> 

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

Вот файл манифеста:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".splash" 
     android:label="@string/title_activity_splash" 
     android:theme="@style/Theme.AppCompat.NoActionBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.AppCompat.NoActionBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAINACTIVITY" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".Poems" 
     android:label="@string/title_activity_poems" 
     android:theme="@style/Theme.AppCompat.NoActionBar" > 
     <intent-filter> 
      <action android:name="apps.panky.poemsnrhymes.POEMS" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".test" 
     android:label="@string/title_activity_test" > 
    </activity> 
</application> 

ответ

0

Попробуйте назначить себя как onItemClickListener с:

list.setAdapter(adapter); 
list.setTextFilterEnabled(true); 
list.setOnItemClickListener(this); 

(последняя строка является единственным дополнением)

Ваш onItemClick никогда не ударил, потому что вы не имеете способ достичь без этого вызова setOnItemClickListener. Вам необходимо явно указать себя как слушателя, так как вы реализуете AdapterView.OnItemClickListener

+0

Добро пожаловать! –

 Смежные вопросы

  • Нет связанных вопросов^_^