gpt4 book ai didi

java - 如何使 listFooter 不可点击

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:46 24 4
gpt4 key购买 nike

所以这就是交易,我已经尝试在这里查看其他类似的线程 https://stackoverflow.com/questions/12479909/how-to-make-list-header-and-footer-not-click-able

但它不起作用。我无法设法“点击时什么都不做”。

但问题不在于处理单击列表时发生的事情,即列表正在提供反馈,就像它被单击一样(I.E 亮起),我不希望这样。

我不明白为什么下面的部分不起作用(即它仍然可以选择/点击)

ViewGroup footer = (ViewGroup)inflater.inflate(R.layout.listview_footer_row, null, false);//This is not working as it should
listView.addFooterView(footer);

有人知道为什么我的页脚是可点击/可选择的,尽管我在方法中添加了错误的声明吗?

这是我的代码

import java.util.ArrayList;

import android.content.Intent;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;

public class PortfolioFragMent extends Fragment{

private ListView listView;
private Button goButton;
private String[] listheader = {"Idag","Senaste","Antal","Avkastning %","Avkastning","Tot Värde"};
private static ShareHoldingAdapter adapter;
private int totalElemInlist = listheader.length;
private int currentelemInList=0;
private ArrayList<ShareHolding> allShareHoldings = new ArrayList<ShareHolding>();
private Button buyButton;

@SuppressLint("NewApi")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


}

@SuppressLint({ "NewApi", "NewApi" })
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
allShareHoldings = Portfolio.getPortfolio().getAllShareHoldings();

super.onCreate(savedInstanceState);
View view = inflater.inflate(R.layout.portfolioframe, container, false);
listView = (ListView)view.findViewById(R.id.listView1);
String[] array = new String[] {"one", "two", "three"};
/**********************************/
adapter = new ShareHoldingAdapter(getActivity(), R.layout.listview_item_row, allShareHoldings);
/***********************************/

ViewGroup header = (ViewGroup)inflater.inflate(R.layout.listview_header_row, null, false);
ViewGroup footer = (ViewGroup)inflater.inflate(R.layout.listview_footer_row, null, false);//This is not working as it should
listView.addHeaderView(header);
listView.addFooterView(footer);

goButton = (Button)view.findViewById(R.id.testButton);
goButton.setText(listheader[currentelemInList]);

listView.setAdapter(adapter);
goButton.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
String buttonPressed = (String) ((Button) view).getText();
currentelemInList++;
if(currentelemInList>=totalElemInlist){
currentelemInList=0;
}
adapter.setButtonPressed(currentelemInList);
goButton.setText(listheader[currentelemInList]);
}
});

listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
/*
* Have to catch Nullpointer exception here since I have two elements in list plus 1 header and 1 footer.
* When I click the footer I sent the number 3 to my next intent (4-1). But I don't want the footer to fire on click at all
*/
if(position<Portfolio.getPortfolio().count()){//Just to check that I havn't clicked listFooter.
System.out.println("Klicka i listan");
Intent intent = new Intent(getActivity().getApplicationContext(),
DetailShareHoldingActivity.class);
intent.putExtra("new_variable_name","value");
intent.putExtra("bookPositionInList",(position-1));//Just so that the top of the list is not clicked
System.out.println(position);

startActivity(intent);
}
}
});

buyButton = (Button)view.findViewById(R.id.buyNewShares);
buyButton.setOnClickListener(new OnClickListener() {public void onClick(View view) {

buyShares();

}});
return view;
}

@SuppressLint({ "NewApi", "NewApi" })
private void buyShares(){
System.out.println("Köpt tryckt");
Intent intent = new Intent(getActivity().getApplicationContext(),
BuyNewSharesActivity.class);
startActivity(intent);
}

@SuppressLint({ "NewApi", "NewApi" })
public void onListItemClick(ListView l, View v, int position, long id) {
System.out.println("Klicka i listan");
Intent intent = new Intent(getActivity().getApplicationContext(),
DetailShareHoldingActivity.class);
intent.putExtra("new_variable_name","value");
intent.putExtra("bookPositionInList",position);
startActivity(intent);
}
public static ShareHoldingAdapter getPortfolioFragmentShareHoldingAdapter(){
return adapter;
}
}

这是我的 listview_footer_row.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableLayout
android:id="@+id/book_detailTable"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="top"
android:layout_weight="1"
android:paddingTop="0dip" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:paddingTop="0dip" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:gravity="left"
android:text="Namn"
android:textColor="#ababab"
android:textSize="25dip" />
</TableRow>
</TableLayout>
</LinearLayout>

最佳答案

而不是使用

addFooterView(v) 

使用

List.addFooterView(v, data, isSelectable);

并设置 isselectable = false

List.addFooterView(v, null,false);

因此您的 footerView 不再可选择

关于java - 如何使 listFooter 不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com