无法从ListView中选择项目,并且无法在android中获得滚动选项

无法从ListView中选择项目,并且无法在android中获得滚动选项,android,android-listview,scrollview,android-linearlayout,android-canvas,Android,Android Listview,Scrollview,Android Linearlayout,Android Canvas,我有2个ListView,然后我必须从中选择2个项目。然后我的android应用程序中将出现一个新窗口 但当一个使用过的ScrollView突然从2个ListView中单击Option时,滚动选项就消失了 我认为我的问题是在布局文件中,因为当我从布局和活动类中删除ScrollView时,程序可以运行,但我的视图很大,所以我需要滚动 需要帮助!提前谢谢 布局 活动 package com.example.tester1; 导入java.io.BufferedReader; 导入java.io.

我有2个ListView,然后我必须从中选择2个项目。然后我的android应用程序中将出现一个新窗口

但当一个使用过的ScrollView突然从2个ListView中单击Option时,滚动选项就消失了

我认为我的问题是在布局文件中,因为当我从布局和活动类中删除ScrollView时,程序可以运行,但我的视图很大,所以我需要滚动

需要帮助!提前谢谢

布局


活动

package com.example.tester1;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.util.StringTokenizer;
导入android.os.Bundle;
导入android.app.Activity;
导入android.content.Context;
导入android.graphics.Canvas;
导入android.graphics.Color;
导入android.graphics.Paint;
导入android.view.Menu;
导入android.view.view;
导入android.view.ViewGroup.LayoutParams;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.LinearLayout;
导入android.widget.ListView;
导入android.widget.ScrollView;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
地图;
字符串Source=“Blank”;
字符串Destination=“Blank”;
列表视图列表1;
列表视图列表2;
字符串[]列表数组;
缓冲读取机场位置;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
AirportLocation=新的BufferedReader(
新的InputStreamReader(getAssets().open(“Airport-Location3.txt”);
}捕获(IOE异常){
e、 printStackTrace();
}
listArray=新字符串[1168];
字符串行1;
int c=0;//位置检测器
试一试{
而((line1=AirportLocation.readLine())!=null){
StringTokenizer s=新的StringTokenizer(第1行);
字符串airport=s.nextToken();
listArray[c]=机场;
C++;
}
}捕获(IOE异常){
e、 printStackTrace();
}
list1=(ListView)findViewById(R.id.list1);
list2=(ListView)findViewById(R.id.list2);
ArrayAdapter1=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,listArray);
ArrayAdapter2=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,listArray);
列表1.设置适配器(适配器1);
列表2.设置适配器(适配器2);
list1.setOnItemClickListener(新SourceSelection());
list2.setOnItemClickListener(newdestinationselection());
}
公众抽签(){
地图=新地图(本);
地图.背景颜色(颜色.黑色);
map.setLayoutParams(新的LayoutParams(LayoutParams.WRAP_内容,LayoutParams.WRAP_内容));
LinearLayout LinearLayout=(LinearLayout)findViewById(R.id.LinearLayout);
linearLayout.addView(地图);
ScrollView ScrollView=新的ScrollView(此);
scrollView.addView(线性布局);
setContentView(滚动视图);
} 
类SourceSelection实现AdapterView.OnItemClickListener{
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
TextView温度=(TextView)arg1;
Source=temp.getText()+“”;
如果(!Source.equals(“Blank”)&&!Destination.equals(“Blank”)){
Draw();
}
}
}
类DestinationSelection实现AdapterView.OnItemClickListener{
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
TextView温度=(TextView)arg1;
Destination=temp.getText()+“”;
如果(!Source.equals(“Blank”)&&!Destination.equals(“Blank”)){
Draw();
}
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
公共类映射扩展了视图{
油漆=新油漆();
公共地图(上下文){
超级(上下文);
}
@凌驾
公共空白onDraw(画布){
油漆。设置颜色(颜色。红色);
画布.画圈(100,100,20,油漆);
帆布.抽绳(2000,2000,5000,5000,油漆);
}
@凌驾
测量时的保护空隙(内部宽度测量等级、内部高度测量等级){
//计算渲染视图所需的高度
//假设宽度始终与父项匹配。
int width=MeasureSpec.getSize(widthmasurespec);
int height=3000+50;//因为3000是要添加的最后一个矩形的底部,50用于填充。
设置测量尺寸(宽度、高度);
}
}

}您可以查看下面的链接。这将让您了解在android中使用listview的情况。这肯定会解决你的问题


将视图作为页脚添加到ListView对不起,我不明白…..)不需要scrollview,您可以将视图作为页脚添加到listview。所以当你将listview滚动到底部时,你会看到末尾的视图。先生,我是Android的初学者。因此,如果你有时间编辑我的代码,这将是巨大的帮助我。。请(
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:paddingLeft="16dp"
   android:paddingRight="16dp" >

   <ListView
       android:id="@+id/list1"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:layout_alignParentLeft="true" />

   <ListView
       android:id="@+id/list2"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:layout_alignParentRight="true" />

    <ScrollView
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

   <LinearLayout
       android:id="@+id/linearLayout"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:orientation="vertical">
   </LinearLayout>

</ScrollView>   

</RelativeLayout>
package com.example.tester1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

public class MainActivity extends Activity {
    Map map;
    String Source = "Blank";
    String Destination = "Blank";
    ListView list1;
    ListView list2;
    String [] listArray;
    BufferedReader AirportLocation;


    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            AirportLocation = new BufferedReader(
                    new InputStreamReader(getAssets().open("Airport-Location3.txt")));
        } catch (IOException e) {
            e.printStackTrace();
        }
        listArray = new String[1168];

        String line1;
        int c = 0;// location detector
        try {
            while((line1 = AirportLocation.readLine())!=null){
                StringTokenizer s = new StringTokenizer(line1);
                String airport = s.nextToken();
                listArray[c] = airport;
                c++;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }


        list1 = (ListView) findViewById(R.id.list1);
        list2 = (ListView) findViewById(R.id.list2);
        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listArray);
        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,listArray);
        list1.setAdapter(adapter1);
        list2.setAdapter(adapter2);
        list1.setOnItemClickListener(new SourceSelection());
        list2.setOnItemClickListener(new DestinationSelection());

    }

    public void Draw(){
        map = new Map(this);
        map.setBackgroundColor(Color.BLACK);
        map.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
        linearLayout.addView(map);
        ScrollView scrollView = new ScrollView(this);
        scrollView.addView(linearLayout);
        setContentView(scrollView);
    } 

class SourceSelection implements AdapterView.OnItemClickListener{

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            TextView temp = (TextView) arg1;
            Source = temp.getText()+"";
            if(!Source.equals("Blank") && !Destination.equals("Blank")){
                Draw();
            }
        }
    }

    class DestinationSelection implements AdapterView.OnItemClickListener{

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            TextView temp = (TextView) arg1;
            Destination = temp.getText()+"";
            if(!Source.equals("Blank") && !Destination.equals("Blank")){
                Draw();
            }
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    public class Map extends View {
        Paint paint = new Paint();
        public Map(Context context) {
            super(context);
        }
        @Override
        public void onDraw(Canvas canvas) {
            paint.setColor(Color.RED);
            canvas.drawCircle(100, 100, 20, paint);
            canvas.drawLine(2000, 2000, 5000, 5000, paint);
        }
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            // Compute the height required to render the view
            // Assume Width will always be MATCH_PARENT.
            int width = MeasureSpec.getSize(widthMeasureSpec);
            int height = 3000 + 50; // Since 3000 is bottom of last Rect to be drawn added and 50 for padding.
            setMeasuredDimension(width, height);
        }
    }