- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的主要 Activity 。我的微调器是空的,即使它已经被初始化。每当访问任何布局元素时,我的应用程序都会崩溃
对于我的生活,我无法弄清楚为什么。我在这上面花了很长时间,在网上研究了很多帖子来寻找解决方案,并尝试了一些修复。到目前为止没有任何效果。有什么想法吗?
此外,忽略日期创建/排序代码。它非常困惑,我已经有了一种更简洁的方法,但在我修复这部分之前不会实现它。
注意:id 在我的布局中都是正确的,我很确定这不是问题。
公共(public)类 RADIO_Live 扩展了 FragmentActivity {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
View fragviewLive;
View fragviewPod;
private int mYear, mMonth, mDay, cYear, cMonth, cDay;
private TextView mCurrentDate;
private TextView mSelectedDate;
private TextView TextCurrentTime;
private TextView TextTotalTime;
boolean firstRUN = true;
SeekBar Podseekbar;
int myProgress = 0;
int podMax = 0;
int CurrentPosition = 0;
boolean playerPODon = false; // variable to keep track if live stream player and podcast player is on or off and if podacast player is paused
boolean playerPODon1st = true;
String mMonthName, cMonthName, cMonthFullName;
String podFileTest, podPlayName, SelectedHour, SelectedDate = null;
String showdate, HourShowText = null;
String[] podDates = new String[14];
String[] podDatesName = new String[14];
int testDay = 0;
int dayOfWeek;
private final Handler UIhandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Create the adapter that will return a fragment for each of the three primary sections
// of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
//context.startService(serviceIntent);
startService(new Intent(this, RADIO_Service.class));
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
fragviewPod = getLayoutInflater().inflate(R.layout.podcasts, null);
// Capture the textview elements
mCurrentDate = (TextView) fragviewPod.findViewById(R.id.currentdateDisplay);
mSelectedDate = (TextView) fragviewPod.findViewById(R.id.selecteddateDisplay);
TextTotalTime = (TextView) fragviewPod.findViewById(R.id.TotalTimeText);
TextCurrentTime = (TextView) fragviewPod.findViewById(R.id.CurrentTimeText);
// Retrieve the current date
Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
IntentFilter filt = new IntentFilter("fromService");
RADIO_Live.this.registerReceiver(br, filt);
IntentFilter Podfilt = new IntentFilter("fromServicePod");
RADIO_Live.this.registerReceiver(PODbr, Podfilt);
actBroadcast("null", "whatsplaying");
ArrayList<CharSequence> dateadapterarray = new ArrayList<CharSequence>();
int ArrayMarker = 0;
for (int podtest = 1; podtest < 15; podtest++) {
MakeDateList(podtest);
if (dayOfWeek != (1|7)) {
podFileTest = cMonthName + " " + cDay + ", " + cYear;
podDatesName[ArrayMarker] = podFileTest;
String cYearTemp = cYear + "";
String cMonthTemp = cMonth + "";
if (cMonth >= 10) {
} else {
cMonthTemp = cMonthTemp.replace("0", "");
cMonthTemp = "0" + cMonthTemp;
}
if (cDay > 9) {
podDates[ArrayMarker] = (cMonthTemp + "" + cDay + "" + cYearTemp.replace("20", ""));
}
if (cDay <= 9) {
podDates[ArrayMarker] = (cMonthTemp + "" + "0" + cDay + "" + cYearTemp.replace("20", ""));
}
ArrayMarker++;
}
if (dayOfWeek == (1|7) && (ArrayMarker > 0)) {
ArrayMarker--;
}
}
for (int buildtext = 0; buildtext < 14; buildtext++) {
dateadapterarray.add(podDatesName[buildtext]);
}
fragviewPod = getLayoutInflater().inflate(R.layout.podcasts, null);
Spinner datespinner = (Spinner) fragviewPod.findViewById(R.id.spinnerdate);
Spinner hourspinner = (Spinner) fragviewPod.findViewById(R.id.spinnerhour);
//Spinner hourspinner = (Spinner) mViewPager.findViewById(R.id.spinnerhour);
ArrayAdapter<CharSequence> dateadapter = new ArrayAdapter<CharSequence>(RADIO_Live.this, android.R.layout.simple_spinner_item, dateadapterarray);
dateadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ArrayAdapter<CharSequence> houradapter = new ArrayAdapter<CharSequence>(RADIO_Live.this, android.R.layout.simple_spinner_item, R.array.hour_array);
houradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
datespinner.setAdapter(dateadapter);
hourspinner.setAdapter(houradapter);
// Display the current date under "Today's Date" at the top
updateCurrentDate();
datespinner.setOnItemSelectedListener(new DateOnItemSelectedListener());
hourspinner.setOnItemSelectedListener(new HourOnItemSelectedListener());
Button livebutton = (Button) fragviewLive.findViewById(R.id.button_streamstartstop);
//livebutton.setOnClickListener((View.OnClickListener) this);
Button podplaybutton = (Button)fragviewPod.findViewById(R.id.button_pod_play);
//podplaybutton.setOnClickListener((View.OnClickListener) this);
}
更新:这是 View 被夸大的地方。我试图将这两个 View 膨胀到它们自己的静态 LinearLayouts 中,但这也不起作用。
所以在主要 Activity 开始时:
static LinearLayout livelayout;
static LinearLayout podlayout;
然后是 fragment 代码。它实际上是来自 Android Studio 的空默认应用程序的代码,其中包含我的东西:
public static class DummySectionFragment extends Fragment {
public DummySectionFragment() {
}
public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER);
Bundle args = getArguments();
int test = args.getInt(ARG_SECTION_NUMBER);
livelayout = (LinearLayout)inflater.inflate(R.layout.live, null);
podlayout = (LinearLayout)inflater.inflate(R.layout.podcasts, null);
inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resID = 0;
switch (test) {
case 1:
resID = R.layout.live;
break;
case 2:
resID = R.layout.podcasts;
break;
}
//textView.setText(Integer.toString(args.getInt(ARG_SECTION_NUMBER)));
View fragview = inflater.inflate(resID, null);
return fragview;
}
}
所以澄清一下,我有一个 main.xml,它只是 header 和页面适配器,然后是 live.xml 和 podcast.xml。
主.xml:
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".RADIO_Live" >
<!--
This title strip will display the currently visible page title, as well as the page
titles for adjacent pages.
-->
<android.support.v4.view.PagerTitleStrip android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#33b5e5"
android:textColor="#fff"
android:paddingTop="4dp"
android:paddingBottom="4dp" />
</android.support.v4.view.ViewPager>
Live.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >
<LinearLayout android:id="@+id/tab1.1"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginTop="15sp"
android:layout_marginBottom="10sp" android:layout_marginLeft="30sp"
android:layout_marginRight="30sp" android:textSize="18sp"
android:text="@string/LiveTabBlurb" />
</LinearLayout>
<Button android:id="@+id/button_streamstartstop"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginTop="10sp" android:layout_marginLeft="20sp"
android:layout_marginRight="20sp" android:textSize="28sp"
android:textStyle="italic" android:textColor="#FFFFFF" android:text="@string/ListenLiveText" android:onClick="LiveButtonClick" />
<ProgressBar android:layout_gravity="center"
android:layout_height="100dp" android:layout_width="wrap_content"
android:id="@+id/liveProgress" android:paddingTop="30dp"
android:indeterminateBehavior="cycle" android:indeterminate="true"
android:visibility="gone">
</ProgressBar>
<ProgressBar
android:id="@+id/liveProgress"
style="?android:attr/progressBarStyleLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:visibility="gone" />
</LinearLayout>
播客.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab2" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="#ffffff">
<LinearLayout android:orientation="horizontal" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical" android:layout_width="160dp"
android:layout_height="wrap_content">
<TextView android:id="@+id/currentdateDescription"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:paddingTop="5px" android:text="Today's Date:" />
<TextView android:id="@+id/currentdateDisplay"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="5px" android:text="" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:layout_width="160dp"
android:layout_height="wrap_content">
<TextView android:id="@+id/selecteddateDescription"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:paddingTop="5px" android:text="Selected Date:" />
<TextView android:id="@+id/selecteddateDisplay"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="5px" android:text="None Selected" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Spinner android:id="@+id/spinnerdate" android:layout_width="160dp"
android:layout_height="wrap_content" android:prompt="@string/date_prompt" />
<Spinner android:id="@+id/spinnerhour" android:layout_width="160dp"
android:layout_height="wrap_content" android:prompt="@string/hour_prompt" />
</LinearLayout>
<Button android:id="@+id/button_pod_play"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="20sp" android:layout_marginRight="20sp"
android:paddingTop="5sp" android:layout_marginTop="10sp"
android:textSize="28sp" android:textColor="#FFFFFF" android:textStyle="italic"
android:text="@string/PlayPodText" android:onClick="PodButtonClick"/>
<SeekBar android:layout_width="fill_parent"
android:layout_height="wrap_content" android:paddingTop="5dp"
style="?android:attr/progressBarStyleHorizontal"
android:layout_margin="10dp" android:id="@+id/seekBar" android:max="100"
android:progress="0" />
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/CurrentTimeText"
android:layout_width="60dp" android:layout_height="wrap_content"
android:paddingTop="5px" android:textSize="18px" android:text="0:00" />
<ProgressBar android:layout_gravity="center"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:id="@+id/podProgress" android:paddingTop="10px"
android:indeterminateBehavior="cycle" android:indeterminate="true"
android:visibility="gone">
</ProgressBar>
<TextView android:id="@+id/TotalTimeText"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:paddingTop="5px" android:gravity="right" android:textSize="18px"
android:text="0:00" />
</LinearLayout>
</LinearLayout>
稍微多一些背景。这个应用程序实际上是 100% 工作的,但我使用的是一个丑陋的 Android 2.0 天选项卡式界面,并且想更新一个带有页面 View 适配器的漂亮的 Holo 界面。在我尝试之前从未这样做过,但我遇到了这些问题。
更新:我得到了一些工作(有点)。调试时,我的两个微调器不再为空,至少根据调试器而言。但是只要 Activity 访问任何布局对象,应用程序仍然会崩溃。如果我尝试设置任何 TextView 或微调器,它似乎要么崩溃,要么就是不更新内容。
fragment 代码:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
//Fragment fragment = new DummySectionFragment();
Fragment fragment;
Bundle args = new Bundle();
switch(i){
case 0:
fragment = new fragLive();
args.putInt(fragLive.ARG_SECTION_NUMBER, i + 1);
break;
case 1:
fragment = new fragPod();
args.putInt(fragPod.ARG_SECTION_NUMBER, i + 1);
break;
default:
fragment = new fragLive();
args.putInt(fragLive.ARG_SECTION_NUMBER, i + 1);
break;
}
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0: return getString(R.string.title_section1).toUpperCase();
case 1: return getString(R.string.title_section2).toUpperCase();
}
return null;
}
}
/**
* Two classes for the two layout fragments
*/
public class fragLive extends Fragment {
public fragLive() {
}
public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER);
Bundle args = getArguments();
int test = args.getInt(ARG_SECTION_NUMBER);
inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//textView.setText(Integer.toString(args.getInt(ARG_SECTION_NUMBER)));
fragviewLive = inflater.inflate(R.layout.live, null);
return fragviewLive;
}
}
public class fragPod extends Fragment {
public fragPod() {
}
public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER);
Bundle args = getArguments();
int test = args.getInt(ARG_SECTION_NUMBER);
inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//textView.setText(Integer.toString(args.getInt(ARG_SECTION_NUMBER)));
fragviewPod = inflater.inflate(R.layout.podcasts, null);
return fragviewPod;
}
}
最佳答案
首先检查您的 main.xml 布局中是否有 R.id.spinnerdate。
如果是这样,请尝试以下操作:
由于您使用的是 FragmentActivity
,因此请先扩充您的布局。
private View myView;
.....
myView = getLayoutInflater().inflate(R.layout.main, null);
并将 datespinner 引用更改为:
Spinner datespinner = (Spinner) myView.findViewById(R.id.spinnerdate);
关于Android 微调器为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18690562/
我之前让 dll 注入(inject)器变得简单,但我有 Windows 7,我用 C# 和 C++ 做了它,它工作得很好!但是现在当我在 Windows 8 中尝试相同的代码时,它似乎没有以正确的方
我正在尝试制作一个名为 core-splitter 的元素,该元素在 1.0 中已弃用,因为它在我们的项目中起着关键作用。 如果您不知道 core-splitter 的作用,我可以提供一个简短的描述。
我有几个不同的蜘蛛,想一次运行所有它们。基于 this和 this ,我可以在同一个进程中运行多个蜘蛛。但是,我不知道如何设计一个信号系统来在所有蜘蛛都完成后停止 react 器。 我试过了: cra
有没有办法在达到特定条件时停止扭曲 react 器。例如,如果一个变量被设置为某个值,那么 react 器应该停止吗? 最佳答案 理想情况下,您不会将变量设置为一个值并停止 react 器,而是调用
https://code.angularjs.org/1.0.0rc9/angular-1.0.0rc9.js 上面的链接定义了外部js文件,我不知道Angular-1.0.0rc9.js的注入(in
我正在尝试运行一个函数并将服务注入(inject)其中。我认为这可以使用 $injector 轻松完成.所以我尝试了以下(简化示例): angular.injector().invoke( [ "$q
在 google Guice 中,我可以使用函数 createInjector 创建基于多个模块的注入(inject)器。 因为我使用 GWT.create 在 GoogleGin 中实例化注入(in
我在 ASP.NET Core 1.1 解决方案中使用配置绑定(bind)。基本上,我在“ConfigureServices Startup”部分中有一些用于绑定(bind)的简单代码,如下所示: s
我在 Spring MVC 中设置 initBinder 时遇到一些问题。我有一个 ModelAttribute,它有一个有时会显示的字段。 public class Model { privat
我正在尝试通过jquery post发布knockoutjs View 模型 var $form = $('#barcodeTemplate form'); var data = ko.toJS(vm
如何为包含多态对象集合的复杂模型编写自定义模型绑定(bind)程序? 我有下一个模型结构: public class CustomAttributeValueViewModel { publi
您好,我正在尝试实现我在 this article 中找到的扩展方法对于简单的注入(inject)器,因为它不支持开箱即用的特定构造函数的注册。 根据这篇文章,我需要用一个假的委托(delegate)
你好,我想自动注册我的依赖项。 我现在拥有的是: public interface IRepository where T : class public interface IFolderReposi
我正在使用 Jasmine 测试一些 Angular.js 代码。为此,我需要一个 Angular 注入(inject)器: var injector = angular.injector(['ng'
我正在使用 Matlab 代码生成器。不可能包含代码风格指南。这就是为什么我正在寻找一个工具来“ reshape ”、重命名和重新格式化生成的代码,根据我的: 功能横幅约定 文件横幅约定 命名约定 等
这个问题在这里已经有了答案: Where and why do I have to put the "template" and "typename" keywords? (8 个答案) 关闭 8
我开发了一种工具,可以更改某些程序的外观。为此,我需要在某些进程中注入(inject)一个 dll。 现在我基本上使用这个 approach .问题通常是人们无法注入(inject) dll,因为他们
我想使用 swing、spring 和 hibernate 编写一个 java 应用程序。 我想使用数据绑定(bind)器用 bean 的值填充 gui,并且我还希望它反射(reflect) gui
我有这段代码,当两个蜘蛛完成后,程序仍在运行。 #!C:\Python27\python.exe from twisted.internet import reactor from scrapy.cr
要点是 Spring Batch (v2) 测试框架具有带有 @Autowired 注释的 JobLauncherTestUtils.setJob。我们的测试套件有多个 Job 类提供者。因为这个类不
我是一名优秀的程序员,十分优秀!