2015-05-12 3 views
-3

У меня есть следующий код:Намерение не работает в фрагменте

public class HomeFragment extends Fragment { 
    private List<RowItem> rowItems; 

    private static Integer[] images = { R.drawable.red, R.drawable.spidy, 
      R.drawable.prisoners, R.drawable.red, R.drawable.spidy }; 

    public HomeFragment() { 
    } 

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

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_home, container, 
       false); 
     ListView lv = (ListView) rootView.findViewById(R.id.myList); 
     rowItems = new ArrayList<RowItem>(); 

     String[] titles = { "Movie1", "Movie2", "Movie3", "Movie4", "Movie5" }; 
     String[] descriptions = { "First Movie", "Second movie", "Third Movie", 
       "Fourth Movie", "Fifth Movie" }; 
     // Populate the List 
     for (int i = 0; i < titles.length; i++) { 
      RowItem item = new RowItem(images[i], titles[i], descriptions[i]); 
      rowItems.add(item); 
     } 

     // Set the adapter on the ListView 
     LazyAdapter adapter = new LazyAdapter(getActivity() 
       .getApplicationContext(), R.layout.list_row, rowItems); 
     lv.setAdapter(adapter); 

     lv.setOnItemClickListener(new OnItemClickListener() { 

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

       Toast.makeText(getActivity(), "test", Toast.LENGTH_LONG).show(); 
       Intent myIntent = new Intent(getActivity(), News.class); 
       getActivity().startActivity(myIntent); 

       // startActivity(in); 
      } 
     }); 
     lv.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
     return rootView; 
    }  
} 

я написал Toast анс startIntent по пункту клик, но он не работает. Ни тост, ни показ новой активности. Я также пробовал метод onItemSelection, но он не работает. Как я могу использовать это в этом классе Fragment?

list_row.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/card" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/card_greenborder" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:orientation="vertical" 
    android:padding="2dp" > 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="4dp" 
     android:text="Dog Tag" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#040404" 
     android:textStyle="bold" 
     android:typeface="sans" /> 

    <ImageView 
     android:id="@+id/list_image" 
     android:layout_width="match_parent" 
     android:layout_height="180dp" 
     android:layout_margin="2dp" 
     android:layout_weight="0.04" 
     android:scaleType="fitXY" 
     android:src="@drawable/dhoom" /> 

    <TextView 
     android:id="@+id/description" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="4dp" 
     android:text="Create an NFC Pet Tag" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textColor="@android:color/secondary_text_dark" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/btnregister" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Register" /> 

</LinearLayout> 
+0

Если вы хотите отправить данные из одного фрагмента к другому, то использовать Bundle ... Вы не можете отправить данные используя намерение с фрагментами. –

+0

Нет, я не хочу отправлять данные. я просто хочу открыть новую деятельность. – deepak

+0

Вы хотите открыть активность из фрагмента? –

ответ

1

Во-первых, не нужно быть реализовать OnItemSelectedListener для ListView. Просто удалите его.

Второй сделать

android:focusable = "false" 
android:focusableInTouchMode = "false" 

для UI с в пользовательских завышенных представлений в ListView

+0

где я должен поставить эту две строки кода? – deepak

+0

в вашем XML-макете – Muthu

+0

В файле 'list_row.xml' для всех Uis – Piyush

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