当我单击列表活动中的项目时,我会显示一个弹出窗口.问题是后退键不会关闭它.我尝试在列表活动中捕获后退键但它没有注册它...然后我尝试将onkeylistener注册到我正在传递到弹出窗口的视图中.像这样:
pop.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
boolean res=false;
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
Log.e("keydown","back");
if (pw.isShowing()) {
Log.e("keydown","pw showing");
pw.dismiss();
res = true;
}
} else {
res = false;
}
return res;
}
});
Run Code Online (Sandbox Code Playgroud)
传递给像这样的弹出窗口:
pw = new PopupWindow(
pop,
240,
70,
true);
Run Code Online (Sandbox Code Playgroud)
但那个听众既不会开火也不会开火.你能帮助我吗?我没有想法:)
我正在onListItemClick事件中的listactivity中创建一个弹出窗口.
LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View pop = inflater.inflate(R.layout.popupcontact, null, false);
ImageView atnot = (ImageView)pop.findViewById(R.id.aNot);
height = pop.getMeasuredHeight();
width = pop.getMeasuredWidth();
Log.e("pw","height: "+String.valueOf(height)+", width: "+String.valueOf(width));
atnot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pw.dismiss();
}
});
pw = new PopupWindow(pop, width, height, true);
// The code below assumes that the root container has an id called 'main'
//pw.showAtLocation(v, Gravity.CENTER, 0, 0);
pw.showAsDropDown(v, 10, 5);
Run Code Online (Sandbox Code Playgroud)
现在,高度和宽度变量应该是用于弹出窗口(popupcontact)的布局的高度和宽度.但他们返回0.我想这是因为布局尚未呈现.有没有人有线索,如何控制弹出窗口的大小而不需要使用绝对像素数?
我正在开发一个可以从网站(也可能是市场)获得的应用程序。我目前遇到的问题是如何处理应用程序的更新。我知道如何对照当前版本检查版本,并且知道是否需要更新它。问题是……怎么办?
有没有办法从网站下载 APK 并开始安装过程?用户当然必须确认,但我只想能够为他启动它。目前我正在这样做:
private void doUpgrade() {
// TODO Auto-generated method stub
Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.upgrade));
builder.setIcon(R.drawable.help);
builder.setMessage(getString(R.string.needUpgrade));
builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Map<String, String> data = new HashMap<String, String>();
try {
HttpResponse re = Registration.doPost("http://www.android-town.com/appRelease/AndroidTown.apk",data);
int statusCode = re.getStatusLine().getStatusCode();
closeApp();
} catch (ClientProtocolException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), getString(R.string.noURLAccess), Toast.LENGTH_SHORT).show();
closeApp();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), getString(R.string.noURLAccess), Toast.LENGTH_SHORT).show();
closeApp();
}
}
});
builder.setNegativeButton(getString(R.string.cancel), …
Run Code Online (Sandbox Code Playgroud) 有什么办法可以根据手机运行的操作系统版本来加载课程吗?例如:我制作了一个需要1.6+ Android的应用.有没有办法根据手机运行的操作系统加载一个类或另一个类?我特意问这个联系方式.数据库从1.6更改为2.0,旧版本不检索新OS手机上的联系人.我仍然希望保持我的1.6要求,但同时我想要2.0+手机访问应用程序的联系人部分.
那么我可以制作2个API,以某种方式将它们与应用程序打包并决定我选择导入的动态吗?
有没有办法找出上次修改联系人的时间?我似乎无法找到它的变量.我问的原因是因为我想将联系人同步到我的网络服务器,如果需要更新,我不想用HTTP请求检查每个联系人.
所以我在考虑检查上次更新到上次同步日期的日期.
我在使用 Shopify 的 GraphQL API 时遇到一些问题。我已经进行了一系列 REST 调用,但对于这个,我需要 GraphQL。我正在尝试将视频添加到某些产品中,这就是我到目前为止所拥有的:
mutation productCreateMedia($productId: ID!, $media: [CreateMediaInput!]!) {
productCreateMedia(productId: $productId, media: $media) {
media {
alt
}
mediaUserErrors {
code
field
message
}
product {
id
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于变量,我有一个数组:
$gid = "gid://shopify/Product/".row('shopifyID');
$videoLink = "https://www.youtube.com/watch?v=".row('youtubeID');
$media = array('originalSource'=>$videoLink,'mediaContentType'=>'EXTERNAL_VIDEO');
$variables = array ('productId'=>$gid,'media'=>$media);
Run Code Online (Sandbox Code Playgroud)
我使用下一个函数进行调用:
function graph($query , $variables = []){
$domain = 'domain.myshopify.com';
$url = 'https://'.$domain.'/admin/api/2020-01/graphql.json';
$request = ['query' => $query];
if(count($variables) > 0) { $request['variables'] = $variables; }
$req = json_encode($request);
$parameters['body'] …
Run Code Online (Sandbox Code Playgroud) 我的网页有问题,不想根据手机的宽度调整大小...至少不是整个页面.
该页面的例子可以在以下网址看到:http://sibincic.bobr.si/index_table.html 如果我在HTC Desire上试用它,它的分辨率为480x800,它会调整它的大小,但不是全部.
如果有任何想法我应该做什么,请告诉我.
我似乎在使用ItemizedOverlay和OveralyItems时遇到了问题.
我可以让第一个overlayItem出现在地图上,但之后没有任何项目.
代码示例:http: //www.anddev.org/multiple_overlay_items-t12171.html
这里快速概述:
public class Markers extends ItemizedOverlay {
private Context ctx;
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public Markers(Drawable defaultMarker, Context cont) {
super(boundCenterBottom(defaultMarker));
this.ctx = cont;
// TODO Auto-generated constructor stub
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return mOverlays.get(i);
}
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
// TODO Auto-generated method stub
return super.onTap(p, mapView);
}
@Override
protected boolean onTap(int index) {
// TODO Auto-generated method stub …
Run Code Online (Sandbox Code Playgroud)