如何创建一个命中计数器来记录片段/标签的次数?已被访问过?

时间:2016-05-27 14:37:54

标签: java android-fragments

我实际上希望这个问题有意义,因为我从一开始就开始编写Java。我的术语不是特别好,虽然我理解大多数核心编码概念,但我的Java充其量是不稳定的。 soooo ...基于本教程,我已经构建了一个基本的Android应用程序 -

https://www.youtube.com/watch?v=K9rj_AFyLKk 这是3的第3部分。

该应用程序实际上没有任何实质内容,它只是允许用户通过滑动交换片段,其中有3个。我已经设法到达教程的末尾并且已经复制了应用程序非常相同。

我想添加一个额外的功能;无论如何,为每个片段添加一个命中计数器来计算每个片段被访问过多少次?

我在每个片段上都有一个额外的字符串,上面写着“我已被访问过”+ someVariable +“这多次”。

我觉得很容易计算一个事件,例如按钮点击,但是无法看到我可以在这样的地方实现相同的目标吗?

下面是MainActivity.java,我认为它处理片段的交换

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends FragmentActivity {

    ViewPager viewPager = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = (ViewPager)findViewById(R.id.pager);
        FragmentManager fragmentManager = getSupportFragmentManager();
        viewPager.setAdapter(new MyAdapter(fragmentManager));
    }
}
class MyAdapter extends FragmentStatePagerAdapter{


    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

下面是一个延续,添加了用于存储计数器的变量,甚至不确定这是否正确,但是已经尝试过,因为这是我要为按钮事件做的事情 - 存储计数器作为事件是烧成。

    //@Override
    int numSwipes = 0;
    int numSwipes2 = 0;
    int numSwipes3 = 0;
    public Fragment getItem(int i) {
        Fragment fragment = null;
        if(i==0)
        {
            fragment = new FragmentA();
            numSwipes++;
        }
        if(i==1)
        {
            fragment = new FragmentB();
            numSwipes2++;
        }
        if(i==2)
        {
            fragment = new FragmentC();
            numSwipes3++;
        }
        return fragment;
    }

    @Override
    public int getCount() {
        return 3;
    }
    public CharSequence getPageTitle(int position){
        if(position==0)
        {
            return "tab 1";
        }
        if(position==1)
        {
            return "tab 2";
        }
        if(position==2)
        {
            return "tab 3";
        }
        return null;
    }
}

每个片段都有单独的类;除了R.layout之外,FragmentA.java,FragmentB.java和FragmentC.java看起来彼此相同,对应于它的相关片段 -

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class FragmentA extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,    Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_a,container,false);
    }
}

如果使用tally变量是正确的方法,我怎么能在片段类中访问它们?

0 个答案:

没有答案