我PagerSlidingTabStrip
在我的项目中使用,并在片段中显示数据.它是一个很棒的图书馆.每个片段都包含一个学者的讲座,这些讲座是从Web服务加载的.访问Web服务的代码是onCreateView
Fragment的方法.目前,所有片段的数据在添加时同时加载ViewPager
.我想知道是否有任何方法只有当用户点击/滑动到特定选项卡时才加载Fragment的数据.不是一次一切.
当前代码非常标准,我从提供的示例[android解决方案]中获得了帮助.1
寻呼机适配器如下:
public class ScholarDetailPagerAdapter extends FragmentPagerAdapter {
private final String[] TITLES = { "Scholar Info", "Lectures"};
Scholar _scholar;
public ScholarDetailPagerAdapter(FragmentManager fm, Scholar scholar) {
super(fm);
_scholar = scholar;
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public Fragment getItem(int arg0) {
if(arg0 == 0)
return ScholarsInfoFragment.netInstance(_scholar.Name, _scholar.Information, _scholar.ThumbnailUrl);
else
return ScholarLecturesFragment.newInstance(_scholar.ScholarId);
}
@Override
public int getCount() {
return TITLES.length;
}
}
Run Code Online (Sandbox Code Playgroud)
它返回两个片段,信息和讲座.Lectures片段调用Web服务以获得学者的讲座.
活动代码是:
@Override
public void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager pagerslidingtabstrip
这似乎是一个已被多次询问/回答的问题.不是.
开发环境: VS 2012和MVC 4.我使用内置的IIS Express来运行应用程序.
这个错误直到昨天才发生.它突然开始发生,我被卡住了.奇怪的是它只发生在一个场景中.
当我尝试访问时http://localhost:49962/managescholars/
,它会显示错误
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
Run Code Online (Sandbox Code Playgroud)
但使用http://localhost:49962/managescholars/Index
工作正常.同一控制器的其他动作方法也可以正常工作.如http://localhost:49962/managescholars/create
.所有其他控制器也可以正常工作.
我尝试将以下内容添加到web.config中.
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
<handlers/>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我也试过以管理员身份运行以下命令
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
Run Code Online (Sandbox Code Playgroud)
但它们都没有奏效.
编辑:
我修改了我的路线.他们看起来如下.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "ManageScholarLectures",
url: "Manage/Lectures/{userFriendlyName}",
defaults: new { controller = MVC.ManageLectures.Name ,
action = MVC.ManageLectures.ActionNames.Index,
userFriendlyName = UrlParameter.Optional }
);
routes.MapRoute(
name: "ManageScholarEdit",
url: "Manage/Scholars/{userFriendlyName}", …
Run Code Online (Sandbox Code Playgroud) 我正在开发针对平板电脑和谷歌电视的应用程序.它就像许多标准的Google TV应用程序一样,具有LeftNavBar和顶级搜索栏,这对所有应用程序屏幕都是通用的.它看起来像下图:
主屏幕
所有其他屏幕的RED区域将不同.它可能包含以下屏幕模型等数据:
活动一加载到主容器中
活动二加载到主容器中
因此,您可以看到主区域中可以加载完全不同的部分.
当在屏幕2中选择任何列表项时(例如在片段列表中),可以将屏幕3作为详细部分加载,或者可以在选择选项卡(将出现在LeftNavBar中)时加载它.
这是我试图实现它的方式.
步骤1.我使用以下XML创建了一个主Activity:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#9ccc" >
<!-- Top Bar -->
</LinearLayout>
<FrameLayout
android:id="@+id/mainContainer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- main Red Container that will load other Activities -->
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
mainContainer
是我想要加载活动的RED容器.LeftNavBar
将作为All的父级添加到此Activity中.
步骤2我创建ActivityOne
&ActivityTwo
与它们两个分别与三个片段(如在上面第二和第三图像示出).
*步骤3我正在尝试加载ActivityOne
主页面的mainContainer FrameLayout ......但是我无法添加它.
我试图通过添加ActivityOne
到mainContainer
如下:
View v = (new ActivityOne()).getWindow().getDecorView();
FrameLayout mainContainer = (FrameLayout) findViewById(R.id.mainContainer);
mainContainer.addView(v); …
Run Code Online (Sandbox Code Playgroud) 我创建了一个EF 4和C#来获取一些数据.我正在使用Linq.其内容如下:
public List<object> GenerateCallTrackingReport(int startRowIndex, int maximumRows, int createdByID)
{
var query = from c in this.ObjectContext.CallLogs
select new
{
CallLogID = c.CallLogID,
DomainName = c.CallDomain.FullName,
CreatedByID = c.CreatedByID,
CreatedBy = c.CreatedByUser.FirstName + " " + c.CreatedByUser.LastAccessIPN,
CalledOn = c.CallDate,
IssueResolutionTime = c.IssueResolutionTime,
CallType = c.CallType.FullName,
CallDescription = c.CallDescription,
CustomerName = (c.CustomerID > 0 ? c.Customer.FirstName + " " + c.Customer.LastAccessIPN : c.TempCaller.FirstName + " " + c.TempCaller.LastName),
CustomerEmail = (c.CustomerID > 0 ? c.Customer.Email …
Run Code Online (Sandbox Code Playgroud) 我有一种情况,我调用一个Web服务,它返回一个XML信封中的HTML.喜欢:
<xml version="1.0" cache="false">
<head/>
<body>
<table>
<tr>
<td>
<a href="link-to-prev-post">
<text color="red"><< Prev</text>
</a>
</td>
<td>
<a href="link-to-next-post">
<text color="red">| Next >></text>
</a>
</td>
</tr>
</table>
</body>
</xml>
Run Code Online (Sandbox Code Playgroud)
我必须检索link-to-prev-post和link-to-next-post链接..所以我可以通过这些链接获得更多数据.
我正在使用XmlPullParser来解析上面提供的XML/HTML.要获取next/prev项的链接,我的操作如下:
if (xmlNodeName.equalsIgnoreCase("a")) {
link = parser.getAttributeValue(null, "href");
} else if (xmlNodeName.equalsIgnoreCase("text")) {
color = parser.getAttributeValue(null, "color");
if (color.equalsIgnoreCase("red") && parser.getEventType() == XmlPullParser.START_TAG) {
// check for next/prev blog entries links
// but this parser.nextText() throws XmlPullParserException
// i think because the nextText() returns …
Run Code Online (Sandbox Code Playgroud) 我有一个主TabActivity,有两个标签,A和B(现在).选项卡A加载一个FragmentActivity(下面给出的代码),它只包含一个FrameLayout
,所以我可以为其中的特定选项卡加载我的片段.
第一个片段有一些TextView和一个ListView.数据来自Web服务.当我单击ListView的项目时,我将该项目的详细信息加载到另一个片段(这也来自Web服务)并将当前片段(使用ListView和其他控件)替换为另一个细节片段.
为了实现这一点,我使用android-support-v4.jar库来使用Fragments,因为它们是首选.
标签A的FragmentActivity的XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/updates_frame"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
选项卡A的FragmentActivity Java代码:
public class UpdatesFragmentActivity extends FragmentActivity implements
IUpdateNotifier {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.updates);
//Load Initial Fragment into FrameLayout
//I am adding this Fragment to BackStack
Fragment newFragment = new UpdatesFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.addToBackStack(null);
ft.add(R.id.updates_frame, newFragment);
ft.commit();
}
//This is an Interface method which I call with …
Run Code Online (Sandbox Code Playgroud) 我正在为Google TV开发一个应用程序,其中所有导航都将使用D-Pad/Keyboard完成.
我的Activity在它下面有一个ActionBar和一些列表.说清单A,B&C.列出B&C根据列表A的所选项加载数据,因此它们可能/可能不会加载数据.
问题是,当ActionBar有焦点并按下DOWN D-Pad键时,焦点会丢失并且不会转移到列表C(如果C没有数据,则转移到B).. y?
为了实现这一点,我尝试以编程方式设置ActionBar的下一个可聚焦视图,如下所示
getActionBar().getCustomView().setNextFocusDownId(R.Id.list_C_id);
Run Code Online (Sandbox Code Playgroud)
但没有奏效.
我还尝试使用层次结构查看器检查布局层次结构......但是,坦率地说,我不明白如何处理它的发现.
如何以编程方式设置Android ActionBar的下一个可聚焦控件?
任何帮助是极大的赞赏.
Activity的XML如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainContainer" style="@style/main" >
<!-- Splash Screen -->
<LinearLayout
android:id="@+id/splash_screen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/welcome"
android:orientation="vertical" >
</LinearLayout>
<!-- main content holder.. it is shown afetr some time of showing above splash screen -->
<LinearLayout
android:id="@+id/main_content_screen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:focusable="true"
android:visibility="invisible">
<!-- All Packages List -->
<LinearLayout
android:layout_width="205dp"
android:layout_height="match_parent"
android:background="@drawable/content_round_bg"
android:focusable="true"
android:orientation="vertical" …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序
CSV
文件,JObject
为CSV
文件中的每条记录创建并将JSON保存为txt文件,最后SFTP
服务器在寻找第3点的免费图书馆后,我决定使用SSH.NET
.
我创建了以下类来异步执行上载操作.
public class JsonFtpClient : IJsonFtpClient
{
private string _sfptServerIp, _sfptUsername, _sfptPassword;
public JsonFtpClient(string sfptServerIp, string sfptUsername, string sfptPassword)
{
_sfptServerIp = sfptServerIp;
_sfptUsername = sfptUsername;
_sfptPassword = sfptPassword;
}
public Task<string> UploadDocumentAsync(string sourceFilePath, string destinationFilePath)
{
return Task.Run(() =>
{
using (var client = new SftpClient(_sfptServerIp, _sfptUsername, _sfptPassword))
{
client.Connect();
using (Stream stream = File.OpenRead(sourceFilePath))
{
client.UploadFile(stream, destinationFilePath);
}
client.Disconnect();
}
return (destinationFilePath);
});
} …
Run Code Online (Sandbox Code Playgroud) 在我的一个活动中,我有多个ListView控件.说清单1,清单2和清单3.在列表1项目的单击上,我从Web服务加载列表2和列表3的数据.点击项目的背景将突出显示.我是通过跟随选择器实现的.
<item android:drawable="@drawable/item_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/item_focused" android:state_focused="false"
android:state_pressed="false"
android:state_selected="true"/>
<item android:state_activated="true" android:drawable="@drawable/item_selected"/>
Run Code Online (Sandbox Code Playgroud)
如您所见,我已指定android:state_activated ="true"来更改单击/点击项目的BG.这很好用.
实际上我想阻止点击项目被选中/突出显示如果正在加载某些其他项目的数据...就像
list1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// load data if no other call to web service is in progress
if (_isNotLoadingData) {
loadList2AndList3DataUsingWebService();
} else {
//Stop This Item From selected/highlighted
//BUT none of the following work. .. Item is always …
Run Code Online (Sandbox Code Playgroud) 我正在使用Eclipse Indigo进行Android开发.我面临的问题是它不允许@Override用于非活动覆盖方法.例如,如果我实现了MediaPlayer的onErrorListner并且我用它设置了属性@Override,那么它会给出以下编译时错误:
The method onError(MediaPlayer, int, int) of type MyActivity must override a superclass method
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我建议如下
Remove "@Override" annotation
Run Code Online (Sandbox Code Playgroud)
艰难地删除@Override修复了问题,但为什么它会抱怨它并且还删除它可能会导致停止其父级的某些功能等?
我已经下载了很多使用这个"@Override"属性和非活动方法的例子,证明这是使用过的,我可能会遗漏一些明显的东西.但是我不能在Eclipse Indigo中运行这些示例而不从所有类中删除这些"@Override"属性.
为什么?
任何帮助是极大的赞赏.
如果这个问题已被提出/回答,我真的很抱歉.但我找不到它.
请原谅我的无知,因为我是WebDriver的新手.
最初加载页面时,它会显示一个LOADING DIV,直到加载所有数据.在继续对页面元素执行其他操作之前,我怎么能等到这个div被隐藏?
我想知道如下:
public static void waitForPageLoad(string ID, IWebDriver driver)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
return d.FindElement(By.Id(ID));
});
}
Run Code Online (Sandbox Code Playgroud)
我将其他元素的ID传递给此功能,我将在LOADING DIV消失时使用该功能.它返回错误的结果,因为ID实际上存在/加载了元素,但是在灰色DIV后面显示"正在加载...请等待"消息.所以这不起作用.我想知道何时LOADING div消失了.
任何帮助是极大的赞赏.
我正在开发一个仅针对平板电脑的Android应用程序.最低要求api级别为3.1.该应用程序将流式传输一些直播电视频道.
我测试了RTSP和HLS,两者运行良好.然而,HLS似乎没有更好的工作,并且调用VideoView的onCompletion,因为流来自尚未完成的直播电视,所以不应该调用它.
我有每个电视频道的RTSP和HLS流网址.我知道Android Android 3.0+支持HLS,但我也可以玩RTSP.
哪一个比另一个好,为什么?
android ×8
c# ×4
google-tv ×2
android-xml ×1
asp.net-mvc ×1
c#-4.0 ×1
eclipse ×1
rtsp ×1
sftp ×1
ssh.net ×1