2016-04-14 15 views
1

Aşağıda benim kodum var, gözden geçirmeme yardımcı olun, nerede yanlış olduğunu bilmiyorum. AşağıdaRecyclerView dize kaynak dosyasından doldurmak istiyorum ama çalışmıyor

import android.app.Activity; 
import android.content.Intent; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.ListFragment; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.CardView; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

/** 
* Created by JIDO on 3/3/2016. 
*/ 
public class Albert_Einstein_Fragment extends Fragment { 
private String b; 
private static final String TAG = "Albert_Eistein_Fragment"; 
private RecyclerView mCrimeRecyclerView; 
private QuoteAdapter mAdapter; 
String[] dataArray ={String.valueOf(R.array.albert_array)}; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    setHasOptionsMenu(true); 

    AppCompatActivity activity = (AppCompatActivity) getActivity(); 

     activity.getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | 
      ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); 


    View view = inflater.inflate(R.layout.dream_list_fragment, container, false); 
    mCrimeRecyclerView = (RecyclerView) view 
      .findViewById(R.id.detail_recycler_view); 
    mCrimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 

    mAdapter = new QuoteAdapter(dataArray); 
    mCrimeRecyclerView.setAdapter(mAdapter); 
    return view; 
} 



private class QuoteHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 
    public TextView mTitleTextView; 
    private TextView mTaskNameTextView; 
    private CardView cardView; 
    public QuoteHolder(View itemView) { 
     super(itemView); 

     cardView = (CardView)itemView 
       .findViewById(R.id.cv); 
     mTaskNameTextView = (TextView) 
       itemView.findViewById(R.id.quotes_list_item_name); 
    } 

    /** 
    * Called when a view has been clicked. 
    * 
    * @param v The view that was clicked. 
    */ 
    @Override 
    public void onClick(View v) { 

    } 

    /** 
    * Called when a view has been clicked. 
    * 
    * @param v The view that was clicked. 
    */ 
    } 

private class QuoteAdapter extends RecyclerView.Adapter<QuoteHolder>{ 
    private String[] dataSource; 
    public QuoteAdapter(String[] dataArgs){ 
     dataSource = dataArgs; 

    } 
    @Override 
    public QuoteHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); 
     View view = layoutInflater 
       .inflate(R.layout.list_quotes, parent, false); 
     return new QuoteHolder(view); 
    } 



    @Override 
    public void onBindViewHolder(QuoteHolder holder, int position) { 
     holder.mTaskNameTextView.setText(dataSource[position]); 
    } 

    /** 
    * Returns the total number of items in the data set hold by the adapter. 
    * 
    * @return The total number of items in this adapter. 
    */ 
    @Override 
    public int getItemCount() { 
     return dataSource.length; 
    } 
} 
} 
} 

Aşağıda

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="albert_array"> 
    <item>Let every man be respected as an individual and no man idolized. </item> 
    <item>God does not play dice. </item> 
    <item>Great spirits have always encountered violent opposition from mediocre minds.</item> 
    <item>Only a life lived for others is a life worthwhile.</item> 
    <item>We shall require a substantially new manner of thinking if mankind is to survive.</item> 
    <item>I used to go away for weeks in a state of confusion.</item> 
</string-array> 
</resources> 

benim dizi dize kaynak dizeleri benim kod çıktısı

2131427328 

yerine listesi ... benim dizi dize kaynak kodunun bir parçasıdır

+0

'String' array Resource'ınızı doğru şekilde almıyorsunuz. Bildirimi başlatma satırında kaldırın ve aşağıdakileri ekleyin: onCreateView() ':' dataArray = activity.getResources(). GetIntArray (R.array.albert_array); '. –

+0

Vay! Mükemmel çalışıyor! Teşekkür ederim! teşekkür ederim! Ama getIntArray() 'i' getStringArray() 'olarak değiştirdim. Çok teşekkür ederim. –

+0

Oh, jeez, evet, bu bir yazım hatasıydı. Benim hatam. Anlamana sevindim. Şerefe! Yanıt olarak –

cevap

2

String dizi kaynağını geri almak için'yi kullanmanız gerekir. 10 yöntem. Uygulamanızın, Context üzerinde çağrılması gereken getResources() yöntemiyle Resources erişimini alabilirsiniz; Sizin durumunuzda, Activity yeterli olacaktır. Eğer activity başlatıldıktan sonra, onCreateView() yönteminde aşağıdaki

private String[] dataArray; 

Ve ekleyin;:

dataArray beyanı hattından başlatma çıkarın

dataArray = activity.getResources().getStringArray(R.array.albert_array); 
+0

Gerçek tıklanan görünümü nasıl alabilirim? –

+0

[Bu yazı] 'da bir örnek var (http://stackoverflow.com/questions/28296708/get-clicked-item-and-its-position-in-recyclerview). –

+0

Bunu deneyeceğim, teşekkürler efendim! –

İlgili konular