我在MainActivity中创建了一个包含5个选项卡的ViewPager。在第一个选项卡中,我放置了一个ListView以便显示一些项目。问题是,每当我滑动到另一个选项卡然后返回第一个选项卡时,列表中的项目就会重复(即列表包含ABC,然后包含ABCABC)。奇怪的是,仅当我向第二个标签页滑动时才发生这种情况。这是我的代码:
主要活动 :
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
//private String[] tabs = { "Mixed", "Videos", "Audio", "Text", "Picture" };
final int[] ICONS = new int[] {
R.drawable.mixed,
R.drawable.video,
R.drawable.audio,
R.drawable.note,
R.drawable.photo
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Adding Tabs
for (int i=0;i<ICONS.length;i++) {
actionBar.addTab(actionBar.newTab().setIcon(MainActivity.this.getResources().getDrawable(ICONS[i]))
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override …Run Code Online (Sandbox Code Playgroud) 您好Android新手如何将Activity从Activity赋予片段?我知道从Fragment到Activity就像这样
Intent intent=new Intent(getActivity(),nextActivity.class)
StartActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但我想从Activity to Fragment.
我ActionBar.TabListener在My Tab Fragment中实现了.
我更新了API 22,更新它展示后ActionBar.TabListener和ActionBarActivity 被弃用.
像我在我的代码中使用的那样
public class Tabview_Landing extends ActionBarActivity implements ActionBar.TabListener
{
}
Run Code Online (Sandbox Code Playgroud)
链接帮助我解决这个问题.
大家好我正在开发一个Android应用程序,我是这个开发的新手.我面临的错误是:
错误:(134,19)错误:RecyclerTouchListener不是抽象的,并且不会覆盖OnItemTouchListener中的抽象方法onRequestDisallowInterceptTouchEvent(boolean)
以下是我出现上述错误的代码
FragmentDrawer.java
public class FragmentDrawer extends Fragment {
private static String TAG = FragmentDrawer.class.getSimpleName();
private RecyclerView recyclerView;
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private NavigationDrawerAdapter adapter;
private View containerView;
private static String[] titles = null;
private FragmentDrawerListener drawerListener;
public FragmentDrawer() {
}
public void setDrawerListener(FragmentDrawerListener listener) {
this.drawerListener = listener;
}
public static List<NavDrawerItem> getData() {
List<NavDrawerItem> data = new ArrayList<>();
// preparing navigation drawer items
for (int i = 0; i < titles.length; i++) {
NavDrawerItem navItem …Run Code Online (Sandbox Code Playgroud) 我正在设计我的应用程序具有向后兼容性,所以我已经实现了支持和设计库,以使用导航抽屉和其他与新的Android版本相关的效果.
导航抽屉管理总共5个片段.其中一个片段包含一张地图:
<RelativeLayout
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">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="300dp"
class="com.google.android.gms.maps.MapFragment" />
Run Code Online (Sandbox Code Playgroud)
-
public class LocationFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_location, container, false);
/*Try to obtain the map from the SupportMapFragment*/
mMap = ((MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.map)).getMap();
Run Code Online (Sandbox Code Playgroud)
这就是我如何从mainActivity上的导航抽屉管理片段:
public class MainActivity extends AppCompatActivity implements DrawerLayout.DrawerListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
displayFragment(menuItem.getItemId());
drawerLayout.closeDrawers();
return true;
} …Run Code Online (Sandbox Code Playgroud) 我有这个观点:
<LinearLayout 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:orientation="vertical"
android:background="@color/DeepSkyBlue"
tools:context=".MainPreviewActivity"
android:weightSum="5">
<fragment
android:name="com.apps.foo.bar.CleanPreviewFragment"
android:id="@+id/clean_preview_fragment"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"/>
<fragment
android:name="com.apps.foo.bar.ProcessedPreviewFragment"
android:id="@+id/processed_preview_fragment"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"/>
<View
android:id="@+id/center_dummy_view"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"/>
<ListView
android:layout_height="0dp"
android:layout_weight="2"
android:layout_width="match_parent"
android:id="@+id/lvImageProcessChoices"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我想要将带有id的片段clean_preview_fragment替换为带有id的片段processed_preview_fragment.
我的应用程序需要在后台运行一个摄像头,以便获取帧,处理它们并在其中显示它们processed_preview_fragment.
这是我的代码:
processedPreviewFragment = (ProcessedPreviewFragment) fragmentManager.findFragmentById(R.id.processed_preview_fragment);
if(getResources().getConfiguration().orientation == getResources().getConfiguration().ORIENTATION_PORTRAIT){
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.clean_preview_fragment, processedPreviewFragment);
fragmentTransaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
那是我的MainActivity,onCreate.
我收到此错误:
java.lang.IllegalStateException: Can't change container ID of fragment ProcessedPreviewFragment{41b14770 #1 id=0x7f0e0050}: was 2131624016 now 2131624015
Run Code Online (Sandbox Code Playgroud) 我现在已经有这个问题了一段时间,每当我试图解决它时,我已经放弃了几个小时.
这是我用来与共享首选项进行交互的类.
public class AppStatus {
final static String TAG = "AppStatus";
private static AppStatus instance = new AppStatus();
static Context context;
boolean connected = false;
public boolean IF_PAST = false;
ConnectivityManager connectivityManager;
public static final String FILE_NAME = "appdata";
public final String AUTH_KEY = "auth_key";
public final String TEAM_NAME = "team_name";
public final String TEAM_LOGO = "team_logo";
public final String LOGIN_STATUS = "login_status";
public final String CURRENT_TEAM = "current_team";
public final String TOTAL_TEAMS = "total_teams";
public final String USER_NAME …Run Code Online (Sandbox Code Playgroud) android sharedpreferences android-fragments android-activity
我不熟悉在Android中使用Fragments.
我开始使用带有碎片的导航抽屉开发应用程序,但意识到我将有超过1个活动.
请查看我当前应用计划的图表,并建议是否有更好的方法:
主要活动,包含3个片段(您可以通过NavDrawer导航到每个片段)活动2将滑动选项卡,其中每个选项卡都是片段.但是这样我的NavDrawer就没有这个标签/片段的链接.
有没有更好的办法?我应该完全避免使用第二项活动吗?或者图表看起来合乎逻辑?:
NullPointerException每当我打电话时,我总会得到:
getApplicationContext().getResources().getStringArray(R.array.days);
Run Code Online (Sandbox Code Playgroud)
我DialogFragment在我的电话里打电话给我Activity.我也尝试过使用getActivity(),但这对我也不起作用.有没有人对这个问题有任何想法?
android nullpointerexception android-fragments android-dialogfragment android-resources
我在我的应用程序中使用导航抽屉,我有像F1,F2等片段...在每个fragment我解析数据和显示listview,如果我通过我的应用程序,如F1> F2> F3等一切正常on ..但问题是如果我从F3转到F2,我在F2片段中的数据没有显示,只显示空白页,问题是什么?有人可以帮忙吗?
我的F1
public class Categriesdrawers extends Fragment{
private ImageView drwr;
private SlidingDrawer sldrwr;
private ProgressDialog pDialog;
JSONArray categorylist=null;
private ListView listview;
private ArrayList<HashMap<String,String>> aList;
private static String INTEREST_ACCEPT_URL = "http:.ashx?action=category";
private static final String INTEREST_ACCEPT="categorylist";
private static final String INTERESTACCEPT_USER_ID="Id";
private static final String INTEREST_ACCEPT_NAME="categoryname";
private CustomAdapterCatagory adapter;
private TextView noacpt;
private ListView catlist;
@SuppressWarnings("deprecation")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v=inflater.inflate(R.layout.tests, container, false);
drwr=(ImageView)v.findViewById(R.id.handle);
sldrwr=(SlidingDrawer)v.findViewById(R.id.bottom);
sldrwr.open();
new …Run Code Online (Sandbox Code Playgroud)