RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-232459

Heorhii Lysenko's questions

Martin Hope
Heorhii Lysenko
Asked: 2020-03-29 19:28:28 +0000 UTC

消息时间指示器,设计

  • 1

我正在尝试为信使设计一个聊天泡泡。我只是不知道如何显示消息时间指示器,就像在 Telegram 中一样:

消息时间指示器

我们希望文本锚定在气泡的一角,而不是与文本重叠。

android
  • 1 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-05-31 01:17:40 +0000 UTC

在 EditText 中键入时执行操作

  • 1

我需要在开始输入 EditText 期间以及输入每 N 个字符后执行特定操作。这怎么可能实现呢?

android
  • 1 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-05-25 18:58:50 +0000 UTC

从零年到今天的天数

  • 1

我怎样才能找出从“时间开始”(0年,1个月,1天)到今天已经过去的天数?

java
  • 2 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-03-11 00:45:01 +0000 UTC

键盘崩溃进入 RecyclerView

  • 0

我用RecyclerView。它看起来像这样:

在此处输入图像描述

按下EditText键盘后运行到RecyclerView:

在此处输入图像描述

如何使它在打开键盘RecyclerView时按其大小滚动,这样就可以了?

在此处输入图像描述

recyclerview
  • 1 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-03-02 01:52:23 +0000 UTC

网络更改时出现套接字错误

  • 1

切换网络后(比如从Wifi切换到移动网络),socket报错

class java.net.SocketException
                   recvfrom failed: ETIMEDOUT (Connection timed out)

也许有某种方法可以跟踪网络变化?是否有可能以某种方式明确地确定网络中的更改位置以及通常的套接字超时错误在哪里?

java
  • 1 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-03-02 00:30:38 +0000 UTC

在服务中运行 AsyncTask

  • 0

有一个类继承了AsyncTask。在protected Void doInBackground(Void... voids) 我通过连接到服务器的过程Socket中,不断在套接字上侦听新数据。由于此应用程序必须不断运行并从服务器接收数据,因此问题是如何做到这一点。假设 AsyncTask 应该在服务内部工作,但我没有找到一个合理的实现。

android
  • 1 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-01-24 22:48:53 +0000 UTC

\u android 格式的西里尔字符

  • 0

你好,问题是这样的:有一个EditText,我从中得到一个可以包含西里尔字符的字符串。如何将此字符串转换为带有 \u 代码的转义序列?

java
  • 1 个回答
  • 10 Views
Martin Hope
Heorhii Lysenko
Asked: 2020-01-11 01:58:08 +0000 UTC

显示 ListView 项目时出现问题。线条被打乱

  • 1

可用ListViewAdapter基于BaseAdapter:

public class ContactsListAdapter extends BaseAdapter{
    private LayoutInflater inflater;
    private ArrayList<ContactsListItems> mContactsList = new ArrayList<>();

    ContactsListAdapter(Context context, ArrayList<ContactsListItems> users){
        mContactsList = users;
        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    @Override
    public int getCount() {
        return mContactsList.size();
    }

    @Override
    public Object getItem(int i) {
        return mContactsList.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View convertView, ViewGroup viewGroup) {
        View view = convertView;
        ViewHolder holder;
        ContactsListItems user = getUser(i);

        if (view == null){
            holder = new ViewHolder();
            if (user.getUIN() == -9){
                view = inflater.inflate(R.layout.contacts_list_header, viewGroup, false);
                //((TextView)view.findViewById(R.id.twGroupName_header)).setText(user.getGroupName());
                holder.twGroupName_header = (TextView)view.findViewById(R.id.twGroupName_header);
                holder.twGroupName_header.setText(user.getGroupName());
                view.setTag(R.id.group_id_contacts_listview, -1);
                view.setTag(R.id.parent_group_id_contacts_lisview, user.getParentId());
            }else {

                if (!user.ismIsGroup()) {
                    view = inflater.inflate(R.layout.item_people_in_contacts, viewGroup, false);
                   // ((TextView) view.findViewById(R.id.twContactName)).setText(user.getDisplayName());
                   // ((TextView) view.findViewById(R.id.twUIN)).setText("UIN:" + user.getUIN().toString());
                    holder.twContactName = (TextView)view.findViewById(R.id.twContactName);
                    holder.twContactName.setText(user.getDisplayName());
                    holder.twUIN = (TextView)view.findViewById(R.id.twUIN);
                    holder.twUIN.setText("UIN:" + user.getUIN().toString());
                    view.setTag(R.id.group_id_contacts_listview, user.getGroupId());
                } else {
                    view = inflater.inflate(R.layout.item_group_in_contacts, viewGroup, false);
                    //((TextView) view.findViewById(R.id.twGroupName_contacts)).setText((user.getGroupName()));
                    holder.twGroupName_contacts = (TextView)view.findViewById(R.id.twGroupName_contacts);
                    holder.twGroupName_contacts.setText(user.getGroupName());
                    view.setTag(R.id.group_id_contacts_listview, user.getGroupId());
                }
            }
            view.setTag(holder);
        } else {
            holder = (ViewHolder)view.getTag();
        }
        return view;
    }

    private ContactsListItems getUser(int position) {
        return ((ContactsListItems) getItem(position));
    }
    private static class ViewHolder{
        TextView twContactName;
        TextView twUIN;
        TextView twGroupName_contacts;
        TextView twGroupName_header;
    }
}

以及 ListView 中填充数据的片段:

public class Contacts extends Fragment {

    public ContactsListAdapter adapter;
    ArrayList<ContactsListItems> items = new ArrayList<>();
    String CONTACTS_LIST = "contacts_list";
    @Override
    public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        final View view = inflater.inflate(R.layout.fragment_contacts, container, false);

        SharedPreferences spref = MainPage.contextOfApplication.getSharedPreferences(Consts.APP_PREFERENCES, MainPage.MODE_PRIVATE);
        final String sData = spref.getString(CONTACTS_LIST, "");
        ContactsListItems Item;
        try {
            JSONArray contactsListJson = new JSONArray(sData);
                for (int i=0; i<contactsListJson.length(); i++){
                    JSONObject user = contactsListJson.getJSONObject(i);
                    if (user.getBoolean("IsGroup") && user.getInt("ParentID") == 0) {
                        Item = new ContactsListItems(user.getInt("UIN"),
                                user.getInt("Sex"),
                                user.getInt("ParentID"),
                                user.getInt("ID"),
                                user.getString("DisplayName"),
                                user.getString("GroupName"),
                                user.getBoolean("TeamLead"),
                                user.getBoolean("IsGroup"),
                                user.getInt("GroupID"));
                        items.add(Item);
                    }
                }

        }catch (JSONException e){
        }
        adapter = new ContactsListAdapter(getActivity(), items);
        final ListView listView = (ListView)view.findViewById(R.id.lwContacts);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                Integer GroupId = (Integer) view.getTag(R.id.group_id_contacts_listview);
                Integer parentGroupId = (Integer) view.getTag(R.id.parent_group_id_contacts_lisview);
                ContactsListItems ItemsOnClick;
                    ArrayList<ContactsListItems> itemsOnClick = new ArrayList<>();

                //------------------------------Обработка нажатия на группу-------------------------------------
                    if (GroupId > 0) {
                        try {
                            JSONArray contactsListJson = new JSONArray(sData);
                            for (int j = 0; j < contactsListJson.length(); j++) {
                                JSONObject user = contactsListJson.getJSONObject(j);
                                if (user.getInt("GroupID") == GroupId){
                                    ContactsListItems headerItem = new ContactsListItems(-9,0,user.getInt("ParentID"),0,"", user.getString("GroupName"), false, false, user.getInt("GroupID"));
                                    itemsOnClick.add(headerItem);
                                }
                                if (user.getInt("ParentID") == GroupId) {
                                    ItemsOnClick = new ContactsListItems(user.getInt("UIN"),
                                                                         user.getInt("Sex"),
                                                                         user.getInt("ParentID"),
                                                                         user.getInt("ID"),
                                                                         user.getString("DisplayName"),
                                                                         user.getString("GroupName"),
                                                                         user.getBoolean("TeamLead"),
                                                                         user.getBoolean("IsGroup"),
                                                                         user.getInt("GroupID"));
                                    itemsOnClick.add(ItemsOnClick);

                                }
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                        ContactsListAdapter onClickAdapter = new ContactsListAdapter(getActivity(), itemsOnClick);
                        listView.setAdapter(onClickAdapter);
                //------------------------------Обработка нажатия на группу-------------------------------------

                    } else

                //------------------------------Обработка нажатия на контакт-------------------------------------
                        if (GroupId == 0){

                        Toast t = Toast.makeText(getActivity(), "Contact", Toast.LENGTH_SHORT);
                        t.show();
                //------------------------------Обработка нажатия на контакт-------------------------------------

                    } else

                //------------------------------Обработка нажатия на header--------------------------------------
                        if (GroupId == -1){

                        ArrayList<ContactsListItems> itemsOnBackClick = new ArrayList<>();
                        try {
                            JSONArray backJson = new JSONArray(sData);
                            ContactsListItems ItemsOnBackClick;
                            for (int k=0; k<backJson.length(); k++){
                                JSONObject backUser = backJson.getJSONObject(k);


                                if ((backUser.getInt("GroupID") == parentGroupId) && parentGroupId != 0){
                                    ContactsListItems headerItem = new ContactsListItems(-9,0,backUser.getInt("ParentID"),0,"", backUser.getString("GroupName"), false, false, backUser.getInt("GroupID"));
                                    itemsOnBackClick.add(headerItem);
                                }
                                if (backUser.getInt("ParentID") == parentGroupId) {
                                    ItemsOnBackClick = new ContactsListItems(backUser.getInt("UIN"),
                                                                         backUser.getInt("Sex"),
                                                                         backUser.getInt("ParentID"),
                                                                         backUser.getInt("ID"),
                                                                         backUser.getString("DisplayName"),
                                                                         backUser.getString("GroupName"),
                                                                         backUser.getBoolean("TeamLead"),
                                                                         backUser.getBoolean("IsGroup"),
                                                                         backUser.getInt("GroupID"));
                                    itemsOnBackClick.add(ItemsOnBackClick);

                                }
                                ContactsListAdapter onBackClickAdapter = new ContactsListAdapter(getActivity(), itemsOnBackClick);
                                listView.setAdapter(onBackClickAdapter);
                            }

                        }catch (JSONException e){
                            e.printStackTrace();
                        }
                    }
                //------------------------------Обработка нажатия на header--------------------------------------

                }
        });

        return view;
    }

}

我正在尝试实现一个多级列表。使用少量元素,一切正常,但一旦元素多于手机屏幕上显示的内容,当滚动 ListView 时,元素开始打乱。嵌套在其中的功能会保留,但顺序不会。

有没有人猜到为什么?

像这样更改了 getView() 方法:

 public View getView(int i, View convertView, ViewGroup viewGroup) {
        View view = convertView;
        ViewHolder holder;
        ContactsListItems user = getUser(i);

        if (view == null){
            holder = new ViewHolder();
            if (user.getUIN() == -9){
                view = inflater.inflate(R.layout.contacts_list_header, viewGroup, false);
                holder.twGroupName_header = (TextView)view.findViewById(R.id.twGroupName_header);
                view.setTag(R.id.group_id_contacts_listview, -1);
                view.setTag(R.id.parent_group_id_contacts_lisview, user.getParentId());
            }else {

                if (!user.ismIsGroup()) {
                    view = inflater.inflate(R.layout.item_people_in_contacts, viewGroup, false);
                    holder.twContactName = (TextView)view.findViewById(R.id.twContactName);
                    holder.twUIN = (TextView)view.findViewById(R.id.twUIN);
                    view.setTag(R.id.group_id_contacts_listview, user.getGroupId());
                } else {
                    view = inflater.inflate(R.layout.item_group_in_contacts, viewGroup, false);
                    holder.twGroupName_contacts = (TextView)view.findViewById(R.id.twGroupName_contacts);
                    view.setTag(R.id.group_id_contacts_listview, user.getGroupId());
                }
            }
            view.setTag(holder);
        } else {
            holder = (ViewHolder)view.getTag();
        }


           if (user.getUIN() == -9){
                holder.twGroupName_header.setText(user.getGroupName());
            }else {
               if (!user.ismIsGroup()) {
                   holder.twContactName.setText(user.getDisplayName());
                   holder.twUIN.setText("UIN:" + user.getUIN().toString());
               } else {
                   holder.twGroupName_contacts.setText(user.getGroupName());
               }
           }

        return view;
    }

但是现在,滚动时,当我到达列表末尾时,会发生错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
java
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5