Tag: 片段

用于标签式菜单的Android Fragments

我正在努力为我的Android应用程序中的选项卡式菜单导航添加额外的片段。 我使用了ADT提供的默认’Scrollable Tabs + Swipe’。 下面是我的MainMenu.java package com.example.universitybudget_v2_1; import java.util.Locale; import com.example.universitybudget_v2.R; import android.os.Bundle; 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.NavUtils; import android.support.v4.view.ViewPager; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class MainMenu extends FragmentActivity { /** * The {@link android.support.v4.view.PagerAdapter} that will provide * […]

将数据从fragment分配给activity变量,并在另一个片段中获取变量

我有一个Android应用程序。 其中一个活动有两个片段。 当我的应用程序启动时,它会将数据分配给其活动中的变量。 然后在单击按钮时,将打开第二个片段,并从活动中分配的活动中获取数据。 但它返回null。 到目前为止我尝试过的是…… 我在我的活动类中创建了变量,并像这样从我的片段中分配数据。 ((MainActivity)getActivity()).resultObj = gson.fromJson(HomeCardString.toString(), HomeCardResult.class); 它完全分配,因为我在这样的相同片段中使用了这些数据 HomeCardListItemAdapter adapter = new HomeCardListItemAdapter(getActivity(), R.layout.home_cardlist_item, ((MainActivity)getActivity()).resultObj.HomeData.FriendSummary); 哪个效果很好。 但是当我在点击时打开我的第二个片段时,它只显示我的布局而不执行任何覆盖方法。 像oncontentview等,因为这些所有方法都是在活动开始时执行的。 但那时我还没有将数据分配给我的活动变量。 所以我做了我自己的方法,并在显示我的第二个片段后立即调用它。 showFragment(FRIENDLIST, true); FriendListActivity asdss = new FriendListActivity(); // this is my second fragment asdss.populateFriendList(); 在第二个片段中,我使用此代码的方法。 public void populateFriendList() { FriendList = ((MainActivity)getActivity()).resultObj.HomeData.Friends; String asd = FriendList.toString(); asd = asd + “asdasda”; […]

当我尝试初始化GoogleMap对象时,我得到一个NullPointerException

我正在尝试在我的一个片段类中显示一个地图。 我在地图的XML类中创建了一个片段,并使用它如下: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_profile, container, false); GoogleMap mapFragment = ((SupportMapFragment) getFragmentManager() .findFragmentById(R.id.map)).getMap(); Marker hamburg = mapFragment.addMarker(new MarkerOptions().position(HAMBURG) .title(“Hamburg”)); Marker kiel = mapFragment.addMarker(new MarkerOptions() .position(KIEL) .title(“Kiel”) .snippet(“Kiel is cool”) .icon(BitmapDescriptorFactory .fromResource(R.drawable.icon))); 这是基于我在网上找到的教程。 问题是我不断得到一个NullPointerException,我初始化mapFragment,我不知道为什么。 有谁知道为什么会这样? 非常感谢任何帮助。 logcat的: java.lang.NullPointerException at com.example.sv_laptop03.snapchain.Profile.onCreateView(Profile.java:65) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) at […]

找不到ID 0x7f090005的视图

我开始构建一个简单的Android应用程序,所以当我按下我的video按钮时,它会调用一个包含video播放器的片段,但我总是得到:找不到id为0x7f090005的视图… 我想知道你是否通过弄清楚我正在编写的代码中的错误来帮助我。 这是我的MainActivity.java文件: 公共类MainActivity扩展Activity {private Button mVideoButton; 片段片段; @Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); 的setContentView(R.layout.main_activity); mVideoButton =(Button)findViewById(R.id.videoButton); //video按钮mVideoButton.setOnClickListener(new View.OnClickListener(){@Override public void onClick(View v){FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); FragmentVideo sf = new FragmentVideo(); ft .add(R.id.fragmentVideo,sf); ft.commit();}}); }} 然后我有我的main_activity.xml: 接下来,我的FragmentVideo.java类: public class FragmentVideo extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState ){ […]

AsycTask抛出IllegalStateException – 片段未附加到活动

我的Android应用程序中有以下AsyncTask。 此AsyncTask包含在扩展PreferenceFragment的类的OnCreate()方法中。 public class NotificationsPreferenceFragment extends PreferenceFragment { private static Context context; public NotificationsPreferenceFragment() { } public NotificationsPreferenceFragment(Context context) { this.context = context; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_notifications); getPreferenceManager().findPreference(getString(R.string.send_all_notifications)) .setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { class NotificationSendTask extends DialogAsyncTask { public static final String TAG = “NotificationFragment”; public […]

片段删除问题

我今天只是学习片段。 我按下一个按钮,它会添加/删除一个片段。 但是,如果我尝试删除片段,除了我要删除的片段之外的每个片段都会被删除,为什么? 第一次按下正确添加片段。 Button2 fragment: Button button = (Button) view.findViewById(R.id.button2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ButtonFragment fragment = new ButtonFragment(); if (fragment != null && fragment.isVisible()) { FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.remove(fragment).commit(); } else if(!fragment.isVisible()) { FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.add(R.id.fragment_container, fragment […]

单击属于RecyclerView内的CardView的ImageButton

解决了 我已经修好了你的答案,所以我决定写下这里。 关键是ViewHolder构造函数: 我删除了setOnClickListener()和onClick()方法,我在ObjectAdapter.java定义了这个内部类。 public static class ViewHolder extends RecyclerView.ViewHolder{ public ViewHolder(View itemView) { super(itemView); card_first_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int position = getAdapterPosition(); Toast.makeText(v.getContext(), object.get(position).getName(), Toast.LENGTH_SHORT).show(); } }); card_second_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(), “Forward button”, Toast.LENGTH_SHORT).show(); } }); } } 就这样。 class上的其他人都是一样的。 ObjectFragment.java是: public class […]

从适配器访问片段

我的想法是我有一个列表视图,其中每个项目都是一个产品,当我点击该项目时,我需要从列表视图的适配器内的点击转到另一个片段。 我的适配器是: package info.android.adapter; import info.android.ProductFragment; import info.android.R; import java.util.ArrayList; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class ProductOffersListAdapter extends BaseAdapter { private Context context; private ArrayList navProOffers; public ProductOffersListAdapter(Context context, ArrayList navProOffers) { this.context = context; this.navProOffers = […]

点击导航抽屉关闭

我已经实现了导航抽屉,但是我在使其正常运行时遇到了一些麻烦。 当我点击位置1或2时,它不会启动新片段。 MainActivity.java public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; // nav drawer title private CharSequence mDrawerTitle; // used to store app title private CharSequence mTitle; // slide menu items private String[] navMenuTitles; private TypedArray navMenuIcons; private ArrayList navDrawerItems; private NavDrawerListAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) […]

做推片段动画

如何通过下一个片段进行推送当前片段的动画 这是我想要的动画: 我当前的动画代码只是将第一个片段与第二个片段重叠,它没有像图片中那样推动它 这是代码: result_list.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView av, final View view, final int i, long i2) { result_list.setEnabled(false); view.animate().setDuration(300).translationX(widthListView).alpha(0). withEndAction(new Runnable() { @Override public void run() { //setResult(Activity.RESULT_OK,new Intent().putExtra(“bussStopCode”, data.get(i).getStopCode()).putExtra(“bussStopName”, data.get(i).getStopName())); ////int get 1 //data.remove(i); int temporaryInteger = i; listLastPostion = temporaryInteger; //customAdapter.notifyDataSetChanged(); //view.setTranslationX(0); Log.d(“data”,conreq.getCollectedData().getBusRouteSetData().get(temporaryInteger – 1).getRouteHeading()); Bundle bundle = new Bundle(); […]