Articles of android fragments

WebView片段内的OnKeyDown

我创建了一个包含WebView的Fragment ,我想定义一个onKeyDown()以从一个网页返回到前一个网页。 我做到了,但对我来说最奇怪的部分是从我的Fragment类到我的Activity类共享一个WebViewvariables,因为我无法在Fragment定义onKeyDown() 。 所以我刚刚定义了一个get方法并将其设置为静态。 但我想知道这是不是真正的错误,我的应用程序在某些情况下会严重崩溃。 我的Fragment代码: public class BrowserFragment extends Fragment { private static WebView webView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){ View v = inflater.inflate(R.layout.fragment_activity, parent, false); getActivity().setTitle(R.string.title_rus); webView = (WebView) v.findViewById(R.id.webView); webView.setWebViewClient(new SwingBrowserClient()); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); Uri data = Uri.parse(“http://www.swinginmoscow.ru/m/”); […]

3.0版本设备上的碎片与不推荐使用的TabActivity

所以现在TabActivity从3.0开始正式弃用,我正在将我的所有TabActivities切换为Fragments。 但首先我决定研究片段 我正在阅读设计理念,其中一条线是: Android在Android 3.0(API级别“Honeycomb”)中引入了片段,主要是为了在大屏幕(如平板电脑)上支持更加动态和灵活的UI设计。 现在,我不是在开发平板电脑,我的应用也不会看到平板电脑。 除非使用弃用代码的坏主意,如果我不打算使用大屏幕或animation,我必须获得什么,这似乎是他们兜售的主要内容?

Android谷歌+登录片段

目前我正在尝试使用片段实现google + login,以便我可以在不同的活动中使用它。 我创建了这样的片段 public class GoogleSignUpFragment extends Fragment implements ConnectionCallbacks, OnConnectionFailedListener, OnClickListener { // PlusClient Variables private static final int REQUEST_CODE_RESOLVE_ERR = 9000; private ProgressDialog mConnectionProgressDialog; private PlusClient mPlusClient; private ConnectionResult mConnectionResult; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mPlusClient = new PlusClient.Builder(getActivity() .getApplicationContext(), this, this) .setActions(“http://schemas.google.com/AddActivity”, “http://schemas.google.com/BuyActivity”) .setScopes(Scopes.PLUS_LOGIN, […]

Fragment中的notifyDataSetChanged()不刷新listview

我正在尝试显示从url中提取的项目列表,但我只想一次获取其中的20个…所以我已经实现了一个OnScrollListener来获取用户在最后一项上的项目列表显示。 提取项目但我唯一的问题是列表视图没有更新:这是我的代码到目前为止: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { parentView = inflater.inflate(R.layout.activity_event_speakers_alphabetically, container,false); listView = (ListView) parentView .findViewById(R.id.speakersAlphabeticallyActivityList); nameOrderedMembers.addDataBatch(communityMembers); nameOrderedAdapter = DelegateViewStateAdapterFactory .makeUserListAdapter(getActivity(), nameOrderedMembers.getSortedData(), DelegateViewStateAdapterFactory.OrderType.NAME); listView.setAdapter(nameOrderedAdapter); AQuery aQuery = new AQuery(listView); aQuery.id(R.id.speakersAlphabeticallyActivityList).scrolled(new EndlessScrollListener()); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { if (nameOrderedAdapter.getItem(arg2) instanceof User) { […]

片段的onDestroyView被调用,但视图没有被销毁

Android片段生命周期显示,当片段被添加到backstack然后被删除/替换时, onDestroyView()被调用,稍后,当片段从backstack返回到布局时, onCreateView()被调用。 根据我的理解,这意味着片段的视图正在被破坏和重新创建。 如果用户在片段A中的EditText中输入文本并转到片段B然后再返回到A,则当片段返回时, EditText的内容将被删除。 但是,以下代码中没有发生这种情况; 谁能解释为什么? 我已经确认正在调用FragmentA的onDestroyView() 。 MainActivity.java public class MainActivity extends FragmentActivity { private Fragment currentFragment = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { addFragment(new FragmentA()); } } public void setCurrentFragment(Fragment fragment) { this.currentFragment = fragment; } @Override public void onBackPressed() { if (currentFragment […]

使用FragmentManager从活动中访问片段方法

在下面的方法中,我试图从一个活动中调用一个片段方法。 此方法所在的类扩展了FragmentActivity。 片段的所有导入都应该来自android.support.v4吗? 错误是在最后一行“无法从Fragment转换为NasaDailyImage”的任何想法? public void onRefresh(View view){ android.app.FragmentManager fragmentManager=getFragmentManager(); NasaDailyImage NasaDailyFragment; NasaDailyFragment=(NasaDailyImage)fragmentManager.findFragmentById(R.id.fragment_iotd); //cannot cast from Fragment to NasaDailyImage //NasaDailyFragment.onRefresh(); } 截至目前,我对片段的所有导入都来自android.support.v4.app,除了FragmentManager,因为当我导入android.support.v4.app.FragmentManager而不是android.app.FragmentManager时,getFragmentManager()方法是否定的更长的时间。 我试图通过创建一个android.support.v4.app.FragmentManager()对象解决这个问题,但我得到一个错误,说我无法实例化它。

使用浓缩咖啡测试活动和特定片段

我的活动正在托管两个碎片。 在onCreate()中,我确定将显示哪个片段。 @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); handleIntent(getIntent()); } private void handleIntent(Intent intent) { LogUtils.d(TAG, “handleIntent action=” + intent.getAction()); if (MainIntentService.ACTION_TARGET_OPENER.equals(intent.getAction())) { loadOpener(); } else if (MainIntentService.ACTION_TARGET_LOGIN.equals(intent.getAction())) { loadLogin(); } else { //noop } } private void loadOpener() { OpenerFragment openerFragment = OpenerFragment.newInstance(); loadFragment(R.id.frame_fragment_container, openerFragment, true); } loadFragment()处理事务和提交片段… 这是我的测试类: […]

在特定时间重置整数值

我目前有一个片段,它有几个按钮,并包含一个onClickListener。 每次单击其中一个按钮时,计数器variables将增加1,并使用SharedPreferences设置为另一个片段中TextView的文本。 即使应用程序完全关闭,计数器也会保持不变,并且会在应用程序的后续运行中出现。 我的新目标是在每天结束时将计数器重置为0(准确地说是23:59:00)。 我决定避免谷歌搜索来解决这个问题,并在Android Developer docs上find了TimerTask,Calendar,Timer和Date API; 我试图让这个与这些API一起使用。 不幸的是,它没有像我计划的那样运作。 variables设置回0,但它们保持为零,并且只会增加到1,并在每次退出应用程序时返回0。 有没有更好的方法来解决这个问题? 或者我的方法是否足够,我只需要调整/更改一些代码? 其中一个问题可能是我正在改变计数器variables引用(如果是这样,我应该在哪里更改它)? 这是我尝试的: FirstFragment @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflating the layout View v = inflater.inflate(R.layout.starting_fragment, container, false); //Instantiate new Timer Timer timer = new Timer(); // Creates a Calendar object that specifies a specific time of […]

OnItemClickListener无法解析为一个types(在Fragment内)

这似乎是一个常见问题,通常通过添加正确的导入来解决。 但就我而言,它似乎没有解决任何问题。 我是一个相当新的编程,特别是在Android中,所以忍受我的愚蠢错误(如果适用)。 我有以下导入和代码,但Eclipse一直说AdapterView.onItemClickListener无法解析为types。 任何帮助将非常感激。 import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; public static class MainApplicationFragment extends Fragment { private ArrayAdapter listAdapter; public MainApplicationFragment() { } private void PopulateWorkorderList() throws IOException { […]

将数据从Activity发送到已创建的Fragment

我只find了有关如何创建片段向其发送一些数据的信息,但仅在其与构造函数的实例化中。 但我想知道是否可以从Activity中将一些数据(例如,两个Double对象)发送到Fragment,而无需创建Fragment的新实例。 先前已创建的片段。