小编hun*_*175的帖子

Android:onTouch()永远不会被调用?

我正在玩UI事件处理,我发现了一些我无法从Android Dev中找到解释的东西:我有一个ImageView和一个TextView,每当我触摸ImageView时,TextView都会显示一条消息.但以下代码不起作用:

    public class ShowSomething extends Activity {
 private LinearLayout ll;

 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);  

  LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout);
  final TextView textview = (TextView)findViewById(R.id.textview);
  MyImageView image = new MyImageView(this, textview);
  image.setImageResource(R.drawable.icon);
  ll.addView(image, 48, 48);

 }
}
Run Code Online (Sandbox Code Playgroud)

和MyImageView.java

public class MyImageView extends ImageView implements OnTouchListener{


 private TextView textview;

 public MyImageView(Context context,TextView textview) {
  super(context);
  this.textview = textview;
 }

 @Override
 public boolean onTouch(View v, MotionEvent event) {
  textview.setText("Event captured !");
  return true;
 }
}
Run Code Online (Sandbox Code Playgroud)

main.xml中

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

android

7
推荐指数
2
解决办法
9953
查看次数

AppWidgetHostView无法正确处理onClick/onLongClick

我正在开发的启动,我现在用的应用小部件的工作,我跟着从这里教程: AppWigetHost tutrial -莱昂纳多菲舍尔 一切顺利,直到我试图在AppWidgetHostView加入onLongCick监听器

private void createAppWidget(Intent data) {
    Bundle extras = data.getExtras();
    final int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
    AppWidgetProviderInfo appWidgetInfo = mAppWidgetManager.getAppWidgetInfo(appWidgetId);
    AppWidgetHostView hostView = mAppWidgetHost.createView(getApplicationContext(), appWidgetId, appWidgetInfo);
    hostView.setAppWidget(appWidgetId, appWidgetInfo);
    LinearLayout.LayoutParams params = createLayoutParams(appWidgetInfo); 
    rootLayout.addView(hostView, params);
    hostView.setOnLongClickListener(new OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            Toast.makeText(getApplicationContext(), "Long click " + appWidgetId, Toast.LENGTH_LONG).show();
            return true;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

当我在主机上添加一个小部件(默认的谷歌模拟时钟) - 并试图长时间点击它,它只是不起作用!长按后,它只会打开时钟应用程序(单击的默认操作).

谁能告诉我如何解决它?这是我的完整代码:http: //pastebin.com/61TkuLvx

添加 我刚刚再次检查:
----如果我长时间点击Clock小部件的边界,则会触发longClick事件!
----我添加了我的自定义appwidget(没有onclick处理程序):所以longclick事件总是被正确触发.
所以我想,它必须与touchevent处理程序/调度程序有关.

添加 我刚刚尝试在主机视图的所有子项上设置onLongClick,如下所示:

private void createAppWidget(Intent data) {
...
... 
    setChildrenViewLongClick(hostView, …
Run Code Online (Sandbox Code Playgroud)

android android-appwidget

5
推荐指数
1
解决办法
1164
查看次数

JSON异常:org.json.JSONException:未终止的数组

我正在开发一个Android应用程序 - 它从服务器请求一些数据,服务器以JSON格式返回数据.除了API之外,一切正常.调试后,我发现了这个异常:

org.json.JSONException: Unterminated array at character 152 of

{
    "total": "2",
    "result": [
        {
            "id": "15",
            "ename": "Horror movies based on true stories",
            "vname": "Nh?ng phim kinh d? d?a trên chuy?n có th?t",
            "movies": "16"
        }{
            "id": "14",
            "ename": "IMDB Top 250",
            "vname": "250 b? phim hay nh?t m?i th?i ??i",
            "movies": "127"
        }{
            "id": "13",
            "ename": "10 good movies for women",
            "vname": "10 b? phim hay dành cho phái ??p",
            "movies": "10"
        }{
            "id": "12",
            "ename": "The …
Run Code Online (Sandbox Code Playgroud)

java android json

3
推荐指数
2
解决办法
2万
查看次数

在notifyDatasetChanged()上不调用getView()(对于自定义ListView)

我有以下问题,并搜索了一段时间,但没有从网上得到任何解决方案:

我有一个自定义列表视图,每个项目都有以下布局(我只发帖必备):

<LinearLayout>
 <ImageView android:id="@+id/friendlist_iv_avatar" />
 <TextView andorid:id="@+id/friendlist_tv_nick_name" />
 <ImageView android:id="@+id/friendlist_iv_status_icon" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我有一个类FriendRowItem,它从上面的布局中膨胀:

public class FriendRowItem extends LinearLayout{

 private ImageView ivAvatar;
 private ImageView ivStatusIcon;
 private TextView tvNickName;

 public FriendRowItem(Context context) {
  super(context);
  RelativeLayout friendRow = (RelativeLayout) Helpers.inflate(context, R.layout.friendlist_row);
  this.addView(friendRow);
  ivAvatar = (ImageView)findViewById(R.id.friendlist_iv_avatar);
  ivStatusIcon = (ImageView)findViewById(R.id.friendlist_iv_status_icon);
  tvNickName = (TextView)findViewById(R.id.friendlist_tv_nick_name);

 }

 public void setPropeties(Friend friend) {
  //Avatar
  ivAvatar.setImageResource(friend.getAvatar().getDrawableResourceId());

  //Status
  Status.Type status  = friend.getStatusType();
  if ( status == Type.ONLINE) {
   ivStatusIcon.setImageResource(R.drawable.online_icon);
  } else {
   ivStatusIcon.setImageResource(R.drawable.offline_icon);
  }

  //Nickname
  String name = friend.getChatID();
  if …
Run Code Online (Sandbox Code Playgroud)

android

1
推荐指数
1
解决办法
6854
查看次数

标签 统计

android ×4

android-appwidget ×1

java ×1

json ×1