我想发布一个新片段来查看一些数据.目前,我有一个主要活动,其中包含一堆操作栏选项卡,每个选项卡都是一个片段.所以,在一个标签片段中,我有一个按钮,chartButton.我的onclicklistener都设置了它,这是onClick方法:
public OnClickListener chartsListener = new OnClickListener() {
@Override
public void onClick(View v) {
Intent chartFragment = new Intent();
startActivity(chartFragment);
}
};
Run Code Online (Sandbox Code Playgroud)
现在,正如我所说,这个监听器属于扩展Fragment的类.所以,我想通过意图更换整个屏幕来启动一个新的片段(chartsFragment).当用户点击回来时,它会将它们带回标签和主要活动.这是我的图表片段:
public class chartsFragment extends Fragment {
public View onCreateView() {
//LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
return (inflater.inflate(R.layout.chartfragment, null));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在处理的当前错误:"android.content.ActivityNotFoundException:找不到处理Intent {}的活动".这很好,我知道我可以使用getActivity().startActivity(chartsFragment),但这会导致相同的错误.我想我在这里寻找的是,如何从一个片段中启动一个导致打开新片段的意图?
我有1.6安装程序.我用过它.它不会更改我的Java安装,也不会说有旧版本,但它确实完成了安装.
我一直在使用符号链接,但无论我做什么,运行
java -version
Run Code Online (Sandbox Code Playgroud)
在终端总是导致
Daves-MacBook-Pro:core-server dave$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我的应用程序适用于GAE,它根本不使用Java 1.7.因此,我无法使用1.7编译我的代码!我必须使用1.6,但我没有找到一种方法来删除1.7或以其他方式强制构建/编译在1.6上发生.
最后一点,我在命令行上运行构建工具,因此在Eclipse中更改项目的设置似乎不会有所帮助.
编辑:我已经重新编写了一些代码来尝试通过错误(但现在应用程序在启动时崩溃).首先,我的类现在扩展了FragmentActivity,以便我可以访问方法getSupportFragmentManager();. 然后,在创建中,我改变了我的构造函数:
mTabsAdapter = new TabsAdapter(this.getSupportFragmentManager(), this, mViewPager);
Run Code Online (Sandbox Code Playgroud)
从那里,在我的子类中,我更改了代码以反映这一点:
public TabsAdapter(FragmentManager fm, Activity activity, ViewPager pager) {
super(fm);
mContext = activity;
mActionBar = activity.getActionBar();
mViewPager = pager;
mViewPager.setAdapter(this);
mViewPager.setOnPageChangeListener(this);
}
Run Code Online (Sandbox Code Playgroud)
正如我所说,它仍然崩溃,此时有任何想法吗?
开始原始问题: 我有以下错误:"构造函数FragmentPagerAdapter(FragmentManager)未定义"*
当我尝试执行以下行时:
super(activity.getFragmentManager());这一行遵循我public TabsAdapter(Activity activity, ViewPager pager) {的扩展FragmentPagerAdapter.
基本上,我正在尝试获取我的8+片段应用程序(8个片段,一个活动,其中包含一组链接到每个片段的ActionBar选项卡[为简洁起见,此处仅显示一个"loginTab"]).
这是我的整个代码:
编辑:我用于参考的页面: http ://developer.android.com/reference/android/support/v4/view/ViewPager.html
http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/
package com.davekelley.polling;
import java.util.ArrayList;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
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 …Run Code Online (Sandbox Code Playgroud) 我有一个按钮的onClickListener,需要检测用户单击按钮时选择了哪个单选按钮.目前,您在onClickListener中看到的Log.v没有返回无用的信息:
这是点击提交三次,每次选择不同的电台:
04-27 19:24:42.417:V/submit(1564):1094168584
04-27 19:24:45.048:V/submit(1564):1094167752
04-27 19:24:47.348:V/submit(1564):1094211304
所以,我需要知道实际选择了哪个radioButton - 有没有办法获得radiobutton的对象?我希望能够从XML获取它的id#以及它的当前文本.
这是相关的代码:
public void buildQuestions(JSONObject question) throws JSONException {
radioGroup = (RadioGroup) questionBox.findViewById(R.id.responseRadioGroup);
Button chartsButton = (Button) questionBox.findViewById(R.id.chartsButton);
chartsButton.setTag(question);
Button submitButton = (Button) questionBox.findViewById(R.id.submitButton);
chartsButton.setOnClickListener(chartsListener);
submitButton.setOnClickListener(submitListener);
TagObj tagObj = new TagObj(question, radioGroup);
submitButton.setTag(tagObj);
}
public OnClickListener submitListener = new OnClickListener() {
public void onClick(View v) {
userFunctions = new UserFunctions();
if (userFunctions.isUserLoggedIn(activity)) {
TagObj tagObject = (TagObj) v.getTag();
RadioGroup radioGroup = tagObject.getRadioGroup();
JSONObject question = tagObject.getQuestion();
Log.v("submit", Integer.toString(radioGroup.getCheckedRadioButtonId()));
SubmitTask submitTask …Run Code Online (Sandbox Code Playgroud) 直到今天早些时候,我的印象是,如果我想在低于SDK版本11的设备上使用ActionBar,我需要使用ABS.但是,在看了SO的一些问题后,我发现了这个问题:http://developer.android.com/resources/samples/ActionBarCompat/index.html
该系统看起来像是在preHoneycomb设备上提供了一个功能齐全的动作栏系统.具体来说,虽然我没有在那些关于操作栏选项卡的类中看到任何内容.有没有人设法将这个actionbarhelper类与actionbartabs一起使用?
有没有人有使用这两种系统的经验?我有一段时间试图导入我的Android项目与ABS一起工作,是否将我的R文件链接起来,将清单带入文件夹,获取正确的包名称以便我的活动将启动,以及超出所有这一切,高度混乱的src文件夹.因此,如果可以使用此Google提供的代码,我认为可能需要 - 如果可以使用标签吗?
android android-compatibility actionbarsherlock android-actionbar
目前我使用ABS,ActionBar Tabs和TabsAdapter/ViewPager为我的应用程序制作一个漂亮的标签布局.我有5个以上的类别标签 - 最终用户将能够添加新的类别(我稍后会设置它).所以,目前,我有一个主要SherlockFragmentActivity的许多SherlockFragment类别文件.在主要SFA的onCreate中,我构建了actionBar并添加了所有选项卡,如下所示:
mTabsAdapter.addTab(bar.newTab().setText(R.string.login),
LoginFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText("Geographics"),
GeoFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText(R.string.economics),
EconFragment.class, null);
mTabsAdapter.addTab(bar.newTab().setText(R.string.elections),
ElectionsFragment.class, null);
Run Code Online (Sandbox Code Playgroud)
我想做的是创建一个新的解决方案,CategoryFragment而不是使用所有特定的选举,地理位置,经济等等.任何人都可以想象一个解决方案吗?理想情况下,我想将一个字符串传递给添加的选项卡,以便CategoryFragment可以根据字符串进行膨胀.我想要这个解决方案,因为代码在多个类中是非常冗余的,当所有类真正做的是从SQL db在线加载东西时,只获取自己类别的数据.
这是我的TabsAdapter类:
public class TabsAdapter extends FragmentPagerAdapter
implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
private final Context mContext;
private Polling activity;
private final ActionBar mActionBar;
private final ViewPager mViewPager;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
final class TabInfo {
private final Class<?> clss;
private final Bundle args;
//private final String title;
//This string is implemented only as …Run Code Online (Sandbox Code Playgroud) tabs android android-layout actionbarsherlock android-actionbar
我已经发现你无法覆盖Android手机上的Home按钮.它退出应用程序,它总是退出应用程序,它不会打扰任何namby-pamby确认.我想我理解谷歌的推理 - 但我确实认为这有点短视......
无论如何,(在我了解主页按钮之前),我设置了我的应用程序,以便用户可以通过选项菜单退出应用程序 - 使用onCreateOptionsMenu()和XML文件,我设置了一个简单的弹出菜单,显示按下菜单按钮时.其中一个选择是退出,它工作正常.
但是,在我看来,在退出过程中添加一个确认对话框可能是一个好习惯(即使它也可以被认为是多余的).所以,我创建了一个名为"你想退出吗?"的AlertDialog.以及是和否按钮......
按钮的单击侦听器很简单,只需将exitConfirm(布尔值)设置为true或false即可.处理Exit菜单选项的代码然后在我的应用程序之后清理并执行finish()或不执行取决于exitConfirm的状态...
不幸的是,它完全不起作用...退出案例的onOptionsItemSelected()中的所有代码都会执行,然后显示对话框!我想我应该看到即将到来.我想如果我继续喋喋不休,我会想出一个完成这个的方法,但我想我会向社区提出建议 - 所以,是否有人建议顺利退出Android应用程序方式,包括从用户获得确认的步骤??
谢谢,R.