2017-05-25 33 views
-1

現在、私はライブラリのようにカードのようなタイラースワイプの機能(here)を表示していますが、を表示していないカードで少し問題があります。 getCountと初期化を確認しても、表示されません。私はどこが間違っているのか分からず、これを見るには新しい目のペアが必要だと思う。これは数日間はあった。ありがとうございました。ArrayAdapterでgetView()が呼び出されていません

app_bar_main.xml

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.jobforhire.mobile.CardSliderActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" > 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="JobForHire" 
      android:textColor="@android:color/white" 
      android:textSize="24sp" 
      android:textStyle="bold" /> 

     </android.support.v7.widget.Toolbar> 
</android.support.design.widget.AppBarLayout> 

<include layout="@layout/activity_job_list_container"/> 

</android.support.design.widget.CoordinatorLayout> 

activity_job_list_container.xml

<LinearLayout android:layout_width="match_parent" 
android:layout_height="match_parent" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
tools:context="com.jobforhire.mobile.CardSliderActivity" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

    <link.fls.swipestack.SwipeStack 
    android:id="@+id/swipeStack" 
    android:layout_width="320dp" 
    android:layout_height="240dp" 
    android:padding="32dp"/> 

</LinearLayout> 

activity_job_list_card_view.xml

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_margin="8dp" 
    android:gravity="center_horizontal" 
    android:padding="25dp" 
    card_view:cardBackgroundColor="@color/cardview_light_background" 
    card_view:cardCornerRadius="4dp" 
    card_view:cardElevation="4dp" 
    card_view:cardUseCompatPadding="true"> 

     <TextView 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:card_view="http://schemas.android.com/apk/res-auto" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/title" 
      android:text="Hello"/> 

</android.support.v7.widget.CardView> 

CardSliderActivity.java

private int cardCount = 2; 
private SwipeDeck cardStack; 
private String token; 
private ArrayList<String> testData; 
private ArrayList<DataJobCards> testJsonData = new ArrayList<>(); 
private ArrayList<DataPreference> dataPreferenceArrayList = new ArrayList<>(); 
private ArrayList<DataPreference> dataPreferenceArrayListContainer = new ArrayList<>(); 
private SwipeDeckAdapter adapter; 

/** 
* Inflate a card deck and insert card into the deck 
*/ 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    new RetrieveCards(this,1).execute(); 

    setContentView(R.layout.activity_main); 

    Intent intent = getIntent(); 
    token = intent.getStringExtra("access_token"); 

    new PrefUserAsync(this,this,token).execute(); 

    Fabric.with(this, new Answers()); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    //toolbar.setTitle(R.string.card_title); 
    setSupportActionBar(toolbar); 

    //getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    //getSupportActionBar().setCustomView(R.layout.custom_toolbar); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    getSupportActionBar().setDisplayShowTitleEnabled(false); 

    cardStack = (SwipeDeck) findViewById(R.id.swipe_deck); 
} 

@Override 
public void PassCards(ArrayList<DataJobCards> arrayList) { 

    this.testJsonData = arrayList; 
    adapter = new SwipeDeckAdapter(testData,testJsonData,cardStack,this); 
    if(cardStack != null) { 
     cardStack.setAdapter(adapter); 
     Log.d("Check adapter ", "is !null"); 
    } 
    else{ 
     Log.d("Check adapter ", "is null"); 
    } 
} 

CardDeckAdapter.java

public class CardDeckAdapter extends ArrayAdapter<DataJobCards> { 

private Context context; 
private ArrayList<Integer> randomImage = new ArrayList<>(); 
private ArrayList<DataJobCards> cardList; 
private LayoutInflater inflater; 

public CardDeckAdapter(Context context, ArrayList<DataJobCards> apps) { 
    super(context,0,apps); 
    this.cardList = apps; 
    this.context = context; 

    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    Log.d("Adapter ", "Executed"); 
    for(int i = 0; i < cardList.size(); i++){ 
     Log.d("Check ", cardList.get(i).getJobTitle()); 
    } 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ViewHolder holder; 
    Log.d("getView ", "Executed"); 

    if (convertView == null) { 
     convertView = inflater.inflate(R.layout.activity_job_list_card_view, parent,false); 
     holder = new ViewHolder(); 
     holder.name = (TextView) convertView.findViewById(R.id.title); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    DataJobCards dataJobCard = getItem(position); 

    holder.name.setText(dataJobCard.getJobTitle()); 

    return convertView; 
} 

@Override 
public int getCount() { 
    return cardList.size(); 
} 

@Override 
public DataJobCards getItem(int position) { 
    return cardList.get(position); 

} 

@Override 
public long getItemId(int position) { 
    return 0; 
} 

public static class ViewHolder { 
    TextView name; 
} 
} 

EDIT これでまだ進展なしので、私は、私のメインクラスからもう少しコードを配置CardSliderActivity.java私のメインクラスに何かがある場合に備えて、それと関係があります。

+0

あなたが使用しているライブラリは、リンクしたライブラリですか? これは何も関係がなく、代わりにそうであるようです:https://github.com/flschweiger/SwipeStack あなたの質問を更新し、私たちがあなたに役立つ正確なデータを提供してください。 – Eselfar

+0

大変申し訳ございません。私は昨夜、これを投稿したときにとても疲れていて、混乱したかもしれません。私はそれを更新しました。 –

+0

コードを最小限に抑えてください。それまでにまだ問題を解決していない場合は、小さなコードを投稿してください。これはあまりにも多くのコードです。 –

答えて

0

xmlで定義されているSwipeStackビューが表示されないため、私は推測できません。あなたのswipeStackオブジェクトはnullなので、アダプタは設定されていません。確認できますか?

+0

申し訳ありません、それはコピーの貼り付けエラーでした。 SwipeStackはコンテナの下にあります。私はそれを更新しました。 –

+0

私はあなたのアプリケーションを実行しようとしたと私の上で動作するようです。あなたのアクティビティコード全体を見ることができないので、私は再び推測することができます。ある時点であなたのアクティビティでarrayListがクリアされていないことを確認できますか?アクティビティーとアダプターは同じリスト・インスタンスを共有しているため、アクティビティーでそれをクリアするとアダプターでもクリアされます。 – tompee

0

私たちは、コードを表示するときにファイル名としてactivity_job_list_view.xmlを書きました。しかし、後で、getViewメソッドでは、R.layout.activity_job_list_card_viewを展開します。あなたが名前と混同される可能性はありますか?それとも、あなたがここでstackoverflowで行ったタイプミスですか?

+0

申し訳ありません。それはタイプミスです。ここは本当に遅く、とても疲れました。私はそれを更新しました。 –

+0

さて、まあ...今はもうエラーが見つかりません。ごめんなさい。 – Claff

+0

大丈夫です。あなたの努力をありがとう:) –

関連する問題