我试过在很多方面检查我的android模拟器中的Internet连接
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info= conMgr.getActiveNetworkInfo();
if(info != null || info.isConnected()) {
Log.v("NetworkInfo","Connected State");
}
else{
Log.v("NetworkInfo","Not Connected state");
Log.v("Reason",info.getReason());
}
Run Code Online (Sandbox Code Playgroud)
即使我在我的系统中禁用Internet连接,我的代码似乎显示连接状态,所以我猜这可能会工作
if ( conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED
|| conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ) {
Log.v("Congr","Connection Present");
}
else if ( conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED
|| conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED) {
Log.v("conMgr"," No Connection");
}
Run Code Online (Sandbox Code Playgroud)
但即使我断开互联网电缆,上面的代码也会显示"连接存在"..请帮助找到一个正确的方法来执行此操作.我的清单文件中有ACCESS_NETWORK_STATE和INTERNET权限
当我最初启动我的应用程序时,我得到一个黑屏,在我的主要活动开始之前停留几秒钟.在iphone的情况下,显示名称默认的图像.我不确定如何在Android中做同样的事情.我试着如下徒劳:
<activity android:name=".Index"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@drawable/defaultimage">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我遇到了应用内结算库(使用BillingClient)和应用内结算API(使用IInAppBillingService)都用来管理订阅,我的问题是必须在什么情况下使用.
我正在使用应用内结算API测试并检查应用的启动屏幕上的订阅状态.我的逻辑很简单,使用getPurchases()方法获取购买状态.如果getPurchases()返回空,我认为是"未购买状态"否则"购买国".如果符合以下标准,这将解决吗?
1.延期结算
2.购买到期
如果定期付款失败(例如,因为客户的信用卡已失效),则订阅不会续订.getPurchases()方法不会返回失败或过期的订阅.
这是什么意思
Bundle ownedSubscripedItems = mService.getPurchases(3, getPackageName(), "subs", null);
ArrayList<String> purchaseDataList =
ownedSubscripedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
Run Code Online (Sandbox Code Playgroud)
对于过期的订阅,purchaseDataList数组是否为空?
对递延账单的回应是什么?.如何检查该用户是否喜欢推迟计费.他们的回复是否与普通用户相同?
嗨
在列表视图中我有一个webview应该从服务器加载图像文件,当没有图像存在时,我需要一个虚拟图像.我试过
holder.image.setWebViewClient(new WebViewClient()
{
@Override
public void onReceivedError( WebView view, int errorCode, String description, String failingUrl)
{
System.out.println("description error" + description);
view.setVisibility( View.GONE );
}
@Override
public void onPageFinished(WebView view, String url) {
view.setVisibility( View.VISIBLE );
}
});
Run Code Online (Sandbox Code Playgroud)
我在FrameLayout中有一个虚拟图像的webview,在每个图像url加载后调用onPageFinished监听器,但是没有为产生404错误的url调用onReceivedError.任何猜测如何做.
我喜欢开发一个类似于Swapps的应用程序.我试图在任何屏幕上显示一个按钮,这应该仅在刷卡动作时出现.我尝试使用下面的代码
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type =WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
params.format =PixelFormat.TRANSLUCENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
parentlay = new LinearLayout(this);
mybt = new Button(getApplicationContext());
bt.setText("Click to Go");
parentlay.setBackgroundColor(Color.TRANSPARENT);
parentlay.setHapticFeedbackEnabled(true);
parentlay.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// event.getAction() prints 4 and not able to get up or down event
}
});
windowmanager.addView(parentlay, params);
Run Code Online (Sandbox Code Playgroud)
当用户通过捕获该事件并从而从左向右滑动时,我试图显示该按钮
parentlay.addView(bt);
Run Code Online (Sandbox Code Playgroud)
用户从右向左滑动时删除视图
parentlay.removeView(bt);
Run Code Online (Sandbox Code Playgroud)
如上所述,除非我将类型更改为TYPE_SYSTEM_ALERT,否则我无法获取运动事件,但是,如果冻结所有屏幕并且无法单击后退或主页按钮,是否有任何其他方法可以执行此操作.
我刚试过以下修改
params.type =WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
|WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
params.height = WindowManager.LayoutParams.MATCH_PARENT;
params.width = …Run Code Online (Sandbox Code Playgroud) 我为listview编写了一个自定义适配器,但是当我尝试为列表项实现click事件时,我发现它没有响应,如果有人建议我解决方案,我会很高兴.
public class TourList extends ListActivity {
....
setContentView(R.layout.tourlist);
.....
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
//i couldn't reach here
Log.v(TAG,"did u get me");
}
});
adap = new MyAdapter(TourList.this,mylist);
getListView().setAdapter(adap);
Run Code Online (Sandbox Code Playgroud)
我的自定义适配器是
private class MyAdapter extends BaseAdapter {
ArrayList<HashMap<String,String>> elements;
Context ctx;
public MyAdapter(Context context, ArrayList<HashMap<String,String>> mylist) {
this.elements=mylist;
this.ctx=context;
}
public boolean isEnabled(int position){
return true;
}
@Override
public int getCount() {
return elements.size();
}
@Override
public Object getItem(int position) {
return …Run Code Online (Sandbox Code Playgroud) 我正在使用谷歌应用内结算v-3来实施订阅.
我的订阅有一周的跟踪期,UI显示"Avail A Week Free"视图.
如果用户因任何原因订阅和取消,我需要显示"UpGrade"视图.
据我搜索,我了解到如果用户在活动订阅期间取消订阅,INAPP_PURCHASE_DATA_LIST autoRenewing标志将返回false.在订阅期结束后,getPurchase()可能返回空.
在这种情况下,我如何知道要显示哪个UI,因此当订阅到期和用户未订阅时,getPurchase()将为两者返回空.

嗨
我已经附上了两个应用程序图像,它们具有网格视图,如具有不同图像高度和宽度的小部件,动态加载,我需要创建相同类型的UI,如果有人引导我开始,我会很高兴.
我在xml中定义了一个List View,如下所示
<ListView android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:layout_weight="1"
android:layout_marginTop="95dip"/>
Run Code Online (Sandbox Code Playgroud)
我需要在我的程序中重新定义布局余量,我可以如何实现这一点
stackoverflow中有很多答案显示了如何从Web浏览器中获取应用程序,但我不确定我的代码出了什么问题,似乎从来没有做过预期的.我试图通过任何其他应用程序(如Web浏览器)的URL启动我的应用程序,最初我的清单文件看起来像这样
<activity android:name=".Main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="http" android:host="ebay.com" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中输入http://ebay.com从未启动我的应用程序时.显然,浏览器如何了解我的应用程序?,然后我尝试了另一种方式并添加了另一个名为MyActivity的Activity并更改了清单文件如
<activity android:name=".Main">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyActivity">
<intent-filter>
<data android:scheme="http" android:host="ebay.com" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
并尝试在我的主要活动
startActivity(新的Intent(Intent.ACTION_VIEW,Uri.parse("http://mycityway.com")));
从而产生预期的结果.我也可以使用这种方法启动另一个应用程序Activity.
但是这里的大多数答案都表明后者是可能的.我正在做的错误是什么,我无法从浏览器启动我的应用程序.请指导我.
android ×9
listview ×2
adapter ×1
android-ui ×1
background ×1
browser ×1
google-play ×1
overlay ×1
themes ×1
url ×1
webview ×1