自定义列表视图不响应click事件 [英] Custom Listview is not responding to the click event

查看:165
本文介绍了自定义列表视图不响应click事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正如你所想的一切加载罚款,没有点击事件被触发。 在我开始我已经看了这么多线程这个,但是我为我的生活我不能弄明白。这里是code。

activity_main.xml(主要​​布局调用列表)

 <的LinearLayout
    机器人:方向=垂直
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT>

     <的ListView
         机器人:ID =@机器人:ID /列表
         机器人:layout_width =FILL_PARENT
         机器人:layout_height =FILL_PARENT

         />

< / LinearLayout中>
 

list_mainsegments_row.xml(自排)

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:可点击=真
        机器人:方向=横向
        >

        < ImageView的
            机器人:ID =@ + ID / ICONVIEW
            风格=@风格/ generalPagesLogoStyle
            机器人:layout_width =50dp
            机器人:layout_height =50dp
            机器人:layout_margin =@扪/ tendpPadding
            机器人:scaleType =fitCenter
            机器人:SRC =@可绘制/ ic_launcher/>

        <的TextView
            机器人:ID =@ + ID / titleMainSegments
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_gravity =左| center_vertical
            机器人:layout_weight =0.5
            机器人:文本=中文字
            机器人:textAppearance =机器人:ATTR / textAppearanceMedium
            机器人:TEXTSIZE =@扪/ generalTextSize
             />

        <的ImageButton
            机器人:ID =@ + ID / imageButton1
            机器人:layout_width =30dp
            机器人:layout_height =30dp
            机器人:layout_gravity =center_vertical
            机器人:scaleType =fitCenter
            机器人:SRC =@可绘制/箭头/>
    < / LinearLayout中>
 

MyAdapter.java

 公共类MyAdapter扩展ArrayAdapter<字符串> {

    公共MyAdapter(上下文的背景下,INT资源,INT textViewResourceId,
            的String []字符串){
        超(背景下,资源,textViewResourceId,字符串);
    }

    @覆盖
    公共查看getView(INT位置,查看convertView,ViewGroup中父){
        LayoutInflater充气= LayoutInflater.from(的getContext());
        //这是一个单排
        查看排= inflater.inflate(R.layout.list_mainsegments_row,父母,
                假);
        的String [] =项目的getContext()。getResources()。getStringArray(
                R.array.segments_main);
        ImageView的IV =(ImageView的)row.findViewById(R.id.iconView);
        TextView的电视=(TextView中)row.findViewById(R.id.titleMainSegments);
        tv.setText(项目[位置]);
        organiseLayout(位置,项目,IV);
        返回行;

    }

    私人无效organiseLayout(INT位置,的String []项目,ImageView的四){
        如果(项目[位置] .equals(的getContext()。getResources()的getString(
                R.string.segment_one))){
            iv.setImageResource(R.drawable.img1);
        }
        如果(项目[位置] .equals(的getContext()。getResources()的getString(
                R.string.segment_two))){
            iv.setImageResource(R.drawable.img2);
        }
    }
}
 

MainActivity.java

 公共类MainActivity扩展ListActivity实现OnItemClickListener {

私人MyAdapter mAdapter;

@覆盖
保护无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);

    mAdapter =新MyAdapter(这一点,android.R.layout.simple_list_item_1,
            R.id.titleMainSegments,getResources()。getStringArray(
                    R.array.segments_main));

    setListAdapter(mAdapter);
    getListView()setOnItemClickListener(本)。

}

公共无效onItemClick(适配器视图<>母公司视图中查看,
        INT位置,长的id){
    CharSequence的文字=项点击
    INT持续时间= Toast.LENGTH_SHORT;
    吐司面包= Toast.makeText(本,文本,持续时间);
    toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,
            持续时间,持续时间);
    toast.show();
}}
 

没有错误所以logcat的日志是不会是有用的。所有来了很好,但没有面包显示了当ListView中被窃听。

在先进的感谢

编辑:

style.xml:

 <! - 全球风格 - >
    <样式名称=horizLayoutHolder>
        <项目名称=机器人:layout_width> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_height> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_gravity> center_horizo​​ntal< /项目>
    < /风格>

    <! - 这是在基于文本的页面 - >
    <样式名称=general_pages>
        <项目名称=机器人:layout_width> FILL_PARENT< /项目>
        <项目名称=机器人:layout_height> FILL_PARENT< /项目>
        <项目名称=机器人:方向>垂直和LT; /项目>
        <项目名称=机器人:paddingBottom会> @扪/ generalPadding< /项目>
        <项目名称=机器人:以下属性来> @扪/ generalPadding< /项目>
        <项目名称=机器人:paddingRight> @扪/ generalPadding< /项目>
        <项目名称=机器人:paddingTop> @扪/ tendpPadding< /项目>
    < /风格>

    <样式名称=generalPagesTitleStyle>
        <项目名称=机器人:layout_width> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_height> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_marginBottom> @扪/ tendpPadding< /项目>
        <项目名称=机器人:文字颜色>#000< /项目>
        <项目名称=机器人:TEXTSIZE> @扪/ generalHeadingTextSize< /项目>
        <项目名称=机器人:TEXTSTYLE>大胆< /项目>
    < /风格>

    <样式名称=generalPageScrollView>
        <项目名称=机器人:layout_width> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_height> WRAP_CONTENT< /项目>
    < /风格>

    <样式名称=generalPageMainText>
        <项目名称=机器人:layout_width> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_height> WRAP_CONTENT< /项目>
        <项目名称=机器人:文字颜色>#000< /项目>
        <项目名称=机器人:TEXTSIZE> @扪/ generalSmallFontSize< /项目>
    < /风格>

    <样式名称=generalPagesLogoStyle>
        <项目名称=机器人:layout_width> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_height> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_marginBottom> @扪/ tendpPadding< /项目>
<项目名称=机器人:SRC> @可绘制/ mainlogo< /项目>
    < /风格>

    <样式名称=generalActionButton>
        <项目名称=机器人:layout_width> WRAP_CONTENT< /项目>
        <项目名称=机器人:layout_height> 40dp< /项目>
        <项目名称=机器人:layout_gravity> center_horizo​​ntal< /项目>
        <项目名称=机器人:TEXTSIZE> @扪/ generalVerySmallFontSize< /项目>
        <项目名称=机器人:paddingRight> @扪/ generalPadding< /项目>
        <项目名称=机器人:以下属性来> @扪/ generalPadding< /项目>
    < /风格>

    <样式名称=generalTextBoxes>
        <项目名称=机器人:layout_width> 250dp< /项目>
        <项目名称=机器人:layout_height> 50dp< /项目>
        <项目名称=机器人:layout_gravity> center_horizo​​ntal< /项目>
        <项目名称=机器人:EMS> 10< /项目>
        <项目名称=机器人:TEXTSIZE> @扪/ generalSmallFontSize< /项目>
    < /风格>

    <! - 通用的结束/全文基础的活动 - >


    <! - 我在theme.xml用这种 - >
    <样式名称=windowTitleBackgroundStyle>
        <项目名称=机器人:背景>#CCCCCC< /项目>
    < /风格>

    <样式名称=windowTitleStyle>
        <项目名称=机器人:文字颜色>#000000< /项目>
        <项目名称=机器人:填充> 12dip< /项目>
        <项目名称=机器人:TEXTSTYLE>大胆< /项目>
        <项目名称=机器人:TEXTSIZE> 16SP< /项目>
    < /风格>
    <! - 的Theme.xml东西完 - >
 

的themes.xml

 <样式名称=Theme.myTheme.TitleBar父=安卓主题>
    <项目名称=机器人:windowTitleBackgroundStyle> @风格/ windowTitleBackgroundStyle< /项目>
    <项目名称=机器人:windowTitleStyle> @风格/ windowTitleStyle< /项目>
    <项目名称=机器人:windowTitleSize> 50dip< /项目>
    <项目名称=机器人:背景>#F8C845< /项目>
    <项目名称=机器人:文字颜色>#555< /项目>
< /风格>
 

解决方案

删除的LinearLayout 属性

机器人:可点击=真

从XML文件中的 list_mainsegments_row.xml ,它应该工作正常(我刚才试了一下)。


修改

在使用 setOnItemClickListener 其包含一个按钮儿童的ListView控件的方法/ ImageButton的,该方法不会被解雇,因为按钮/ ImageButton的消耗事件。

解决方案是使用 setOnClickListener (为每个项目),而不是 setOnItemClickListener (为ListView)。

为了做到这一点,你可以通过OnClickListener以以下方式适配器:

适配器应该如下:

 私人OnClickListener回调;

公共类MyAdapter扩展ArrayAdapter<字符串> {

公共MyAdapter(上下文的背景下,INT资源,INT textViewResourceId,
        的String []字符串,OnClickListener回调){
    超(背景下,资源,textViewResourceId,字符串);
    this.callback =回调;
}
 

和在 getView 方式,只需添加设置点击监听器,下面的线膨胀行视图后:

  //设置行本身上的点击监听器
row.setOnClickListener(回调);
//设置位置作为标记,以便它可以从点击侦听检索因为点击听者本身不提供位置像做在onItemClickListener
row.setTag(位置);
 

而现在,MainActivity应实施 OnClickListener 而不是 OnItemClickListener ,所以去除方法的 onItemClick ,也从删除以下语句< STRONG>的onCreate 方式:

  getListView()setOnItemClickListener(本)。
 

和添加下面的方法:

  @覆盖
公共无效的onClick(视图查看){
        //观点是getView返回的行视图
        //该位置被存储为标记,因此它可以使用getTag()进行检索
    CharSequence的文字=项点击+ view.getTag();
    INT持续时间= Toast.LENGTH_SHORT;
    吐司面包= Toast.makeText(本,文本,持续时间);
    toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,
            持续时间,持续时间);
    toast.show();
}
 

最后,声明该适配器以下列方式:

  mAdapter =新MyAdapter(这一点,android.R.layout.simple_list_item_1,
            R.id.titleMainSegments,getResources()。getStringArray(
                    R.array.segments_main),这一点);
 


修改

说明:

发生了什么事和你在一起时出现的常见问题,当你有一个的ListView 与包含项目的按钮(或类似)。

在这种情况下,如果你想有一个click事件单独的按钮,然后再次点击事件该项目的其余部分(如果用户点击了该项目,但没有按钮),这是哪里出了问题点击:在钮消耗点击项目的属性,这意味着如果该项目不包含任何按钮,这将是点击默认情况下(你可以尝试删除按钮),但如果该项目包含一个按钮,因为它有一种观点认为,本身就是点击它会点击。

因此​​,即使你设置OnItemClick事件,也不会是,如果该项目有一个按钮(或者类似的东西,像一个图像按钮)在叫,因为它(按钮)将消耗的单击事件。

因此​​,在这种情况下,你不能使用OnItemClick事件(上分配在ListView直接)。

有一个解决办法是在(使用OnItemClick),而不是让ListView控件处理它(因为它不会工作,如上所述)每个项目分配的单击事件。

您必须直接在项目分配OnClick事件(这毕竟是一个视图),这就是为什么我分配的OnClick听众在 getView 的适配器,其中项目的方法鉴于正在建设中。

而不必只有一个监听器(OnItemClick)到目前为止,有许多听众因为这是在屏幕上可见在 getView 适配器的方式分配项目。

如果用户单击该项目来看,如果他/她点击有一个可点击的视图(如按钮......),除了随时随地的onclick监听器将被解雇。

所以,以这种方式解决问题,你可以指定一个点击监听器的按钮,点击监听器的项目视图。

如果用户点击该项目的按钮,执行按钮的点击侦听器。 如果用户点击内侧的项目视图,但不上的按钮,该项目视图的点击监听器被执行,因为点击监听器被设置在项目视图本身。

一个小问题是,用上面的方法,我们不能直接知道什么是单击项目视图的位置,因为如果我们使用了OnItemClick监听器,回调但提供参数中的位置,在的OnClick听众,你只有它被点击作为参数的查看。

为了解决这个小问题,可以使用存储为上的观点本身就是一个标签视图的位置 view.setTag(...)和检索你previously使用存储的 view.getTag()。其实任何观点可以有一个标签,该标签存储为对象,所以在获取它,将它转换回所需的数据类型。

在这种方式,你可以知道处理点击的ListView项事件,并知道该点击项的位置,就像因为如果你使用的是OnItemClick听众。

希望它帮助。

As you would guess everything loads fine, no click event get triggered. Before I start I have read so many thread about this however I for the life of me I cant figure it out. Here is the code.

activity_main.xml (Main Layout to call the list)

<LinearLayout
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

     <ListView
         android:id="@android:id/list"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"

         />

</LinearLayout>

list_mainsegments_row.xml (Custom Row)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:orientation="horizontal" 
        >

        <ImageView
            android:id="@+id/iconView"
            style="@style/generalPagesLogoStyle"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_margin="@dimen/tendpPadding"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/titleMainSegments"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center_vertical"
            android:layout_weight="0.5"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="@dimen/generalTextSize"
             />

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:scaleType="fitCenter"
            android:src="@drawable/arrow" />
    </LinearLayout>

MyAdapter.java

   public class MyAdapter extends ArrayAdapter<String> {

    public MyAdapter(Context context, int resource, int textViewResourceId,
            String[] strings) {
        super(context, resource, textViewResourceId, strings);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = LayoutInflater.from(getContext());
        // This is a single row
        View row = inflater.inflate(R.layout.list_mainsegments_row, parent,
                false);
        String[] items = getContext().getResources().getStringArray(
                R.array.segments_main);
        ImageView iv = (ImageView) row.findViewById(R.id.iconView);
        TextView tv = (TextView) row.findViewById(R.id.titleMainSegments);
        tv.setText(items[position]);
        organiseLayout(position, items, iv);
        return row;

    }

    private void organiseLayout(int position, String[] items, ImageView iv) {
        if (items[position].equals(getContext().getResources().getString(
                R.string.segment_one))) {
            iv.setImageResource(R.drawable.img1);
        }
        if (items[position].equals(getContext().getResources().getString(
                R.string.segment_two))) {
            iv.setImageResource(R.drawable.img2);
        }
    }
}

MainActivity.java

public class MainActivity extends ListActivity implements OnItemClickListener {

private MyAdapter mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mAdapter = new MyAdapter(this, android.R.layout.simple_list_item_1,
            R.id.titleMainSegments, getResources().getStringArray(
                    R.array.segments_main));

    setListAdapter(mAdapter);
    getListView().setOnItemClickListener(this);

}

public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
    CharSequence text = "Item clicked";
    int duration = Toast.LENGTH_SHORT;
    Toast toast = Toast.makeText(this, text, duration);
    toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,
            duration, duration);
    toast.show();
} }

There is no error so the logCat log is not going to be useful. All comes up well but no Toast is showing when ListView is tapped.

Thanks in advanced

Edit:

style.xml:

<!-- Global styles -->
    <style name="horizLayoutHolder">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">center_horizontal</item>
    </style>

    <!-- This is for the text based pages -->
    <style name="general_pages">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">fill_parent</item>
        <item name="android:orientation">vertical</item>
        <item name="android:paddingBottom">@dimen/generalPadding</item>
        <item name="android:paddingLeft">@dimen/generalPadding</item>
        <item name="android:paddingRight">@dimen/generalPadding</item>
        <item name="android:paddingTop">@dimen/tendpPadding</item>
    </style>

    <style name="generalPagesTitleStyle">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginBottom">@dimen/tendpPadding</item>
        <item name="android:textColor">#000</item>
        <item name="android:textSize">@dimen/generalHeadingTextSize</item>
        <item name="android:textStyle">bold</item>
    </style>

    <style name="generalPageScrollView">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>

    <style name="generalPageMainText">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#000</item>
        <item name="android:textSize">@dimen/generalSmallFontSize</item>
    </style>

    <style name="generalPagesLogoStyle">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginBottom">@dimen/tendpPadding</item>
"                <item name="android:src">@drawable/mainlogo</item>
    </style>

    <style name="generalActionButton">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">40dp</item>
        <item name="android:layout_gravity">center_horizontal</item>
        <item name="android:textSize">@dimen/generalVerySmallFontSize</item>
        <item name="android:paddingRight">@dimen/generalPadding</item>
        <item name="android:paddingLeft">@dimen/generalPadding</item>
    </style>

    <style name="generalTextBoxes">
        <item name="android:layout_width">250dp</item>
        <item name="android:layout_height">50dp</item>
        <item name="android:layout_gravity">center_horizontal</item>
        <item name="android:ems">10</item>
        <item name="android:textSize">@dimen/generalSmallFontSize</item>
    </style>

    <!-- End of General / Full text based activities -->


    <!-- I have used this in theme.xml -->
    <style name="windowTitleBackgroundStyle">
        <item name="android:background">#CCCCCC</item>
    </style>

    <style name="windowTitleStyle">
        <item name="android:textColor">#000000</item>
        <item name="android:padding">12dip</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">16sp</item>
    </style>
    <!-- End of Theme.xml stuff -->

themes.xml

<style name="Theme.myTheme.TitleBar" parent="android:Theme">
    <item name="android:windowTitleBackgroundStyle">@style/windowTitleBackgroundStyle</item>
    <item name="android:windowTitleStyle">@style/windowTitleStyle</item>
    <item name="android:windowTitleSize">50dip</item>
    <item name="android:background">#F8C845</item>
    <item name="android:textColor">#555</item>
</style>

解决方案

Remove the LinearLayout attribute

android:clickable="true"

from the XML file list_mainsegments_row.xml and it should work fine (I have just tried it).


EDIT

When you use the setOnItemClickListener method of the ListView having childs that contain a Button/ImageButton, the method is never fired because the Button/ImageButton consumes the event.

The solution is to use setOnClickListener (for every item) instead of setOnItemClickListener (for the ListView).

In order to do that, you can pass the OnClickListener to the adapter in the following manner :

The adapter should be as follows :

private OnClickListener callback;

public class MyAdapter extends ArrayAdapter<String> {

public MyAdapter(Context context, int resource, int textViewResourceId,
        String[] strings ,  OnClickListener callback ) {
    super(context, resource, textViewResourceId, strings);
    this.callback = callback;
}

And in the getView method, just add the following lines that set the click listener, after inflating the row view :

// Set a click listener on the row itself
row.setOnClickListener ( callback );
// Set the position as tag so it can be retrieved from the click listener because the click listener itself does not provide the position like done in the onItemClickListener
row.setTag ( position );

And now, the MainActivity should implement OnClickListener instead of OnItemClickListener, so remove the method onItemClick and also remove the following statement from the onCreate method :

getListView().setOnItemClickListener(this);

And add the following method :

@Override
public void onClick ( View view ) {
        // view is the row view returned by getView
        // The position is stored as tag, so it can be retrieved using getTag ()
    CharSequence text = "Item clicked : " + view.getTag () ;
    int duration = Toast.LENGTH_SHORT;
    Toast toast = Toast.makeText(this, text, duration);
    toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,
            duration, duration);
    toast.show();
}

And finally, declare the Adapter in the following manner :

    mAdapter = new MyAdapter(this, android.R.layout.simple_list_item_1,
            R.id.titleMainSegments, getResources().getStringArray(
                    R.array.segments_main) , this );


EDIT

Explanation :

What happened with you is a common issue that occurs when you have a ListView with items that contain buttons (or the like).

In this case, if you want to have a click event for the button alone, and another click event for the rest of the item (if the user clicks in the item but not on the button), this is where the problem hits : the botton consumes the clickable attribute of the item, meaning that if the item does not contain any buttons it will be clickable by default (you can try to remove the button) but if the item contains a button, it will be clickable because it has a view that itself is clickable.

Therefore, even if you set the OnItemClick event, it will NOT be called if the item HAS a button (or something similar, like an image button) in it, because it (the button) will consume the click event.

So in this case you cannot use the OnItemClick event (which is assigned on the ListView directly).

A solution would be to assign the click event on each item (using OnItemClick) instead of letting the ListView handling it (because it will not work as explained above).

You will have to assign the OnClick event directly on the item (which is a view after all), this is why I assigned the OnClick listener in the getView method of the Adapter, where the item view is being constructed.

So far, instead of having just one listener (OnItemClick), there is as many listeners as items that are visible on the screen, assigned in the getView method of the adapter.

The OnClick listener will be fired if a user clicks anywhere in the item view EXCEPT if where he/she clicks there is a clickable view (like a button ...).

So in this manner the problem is solved, you can assign a click listener to the button and a click listener to the item view.

If the user clicks on the button of the item, the click listener of the button is executed. If the user clicks insides the item view but not on the button, the click listener of the item view is executed because the click listener is set on the item view itself.

One small issue is that, using the approach above, we cannot directly know what is the position of the clicked item view, because if we were using the OnItemClick listener, the call back provides the position in the argument, however in the OnClick listener, you only have the View which was clicked as argument.

In order to solve this small issue, you can store the position of the view as a tag on the view itself using view.setTag ( ... ) and retrieve what you previously stored using view.getTag (). Actually any view can have a tag, which is stored as object, so while retrieving it, cast it back to the required data type.

In this manner, you can know handle click events on ListView items, and know the position of the click item, just like as if you were using a OnItemClick listener.

Hope it helps.

这篇关于自定义列表视图不响应click事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆