Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在自定义列表中添加搜索框_Android_Android Studio_Android Layout - Fatal编程技术网

Android 在自定义列表中添加搜索框

Android 在自定义列表中添加搜索框,android,android-studio,android-layout,Android,Android Studio,Android Layout,我想在主活动和列表数据活动中添加搜索框操作,但在获取filter()和其他内容时遇到问题,请向我推荐ode package com.souravapplication.fruit; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; im

我想在主活动和列表数据活动中添加搜索框操作,但在获取filter()和其他内容时遇到问题,请向我推荐ode

    package com.souravapplication.fruit;

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.SearchView;
    import android.widget.TextView;
    import android.widget.Toast;

    import java.util.Locale;

    public class MainActivity extends AppCompatActivity {

    SearchView editsearch;
    ListView listView;
    String[] fruitNames = {"Apple","Oranges","Kiwi","Passion","Banana"};
    int[]  fruitImages  = {R.drawable.apple,R.drawable.oranges,R.drawable.kiwi,R.drawable.passion,R.drawable.banana};

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

        listView = findViewById(R.id.listview);
        final CustomAdapter  customAdapter  = new CustomAdapter();
        listView.setAdapter(customAdapter);
        editsearch = findViewById(R.id.search);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(final AdapterView adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(),fruitNames[i],Toast.LENGTH_LONG).show();
                Intent intent = new Intent(getApplicationContext(),Listdata.class);
                intent.putExtra("name",fruitNames[i]);
                intent.putExtra("image",fruitImages[i]);
                startActivity(intent);
            }
        });
    }

    private class CustomAdapter extends BaseAdapter {
            @Override
            public int getCount() {
                return fruitImages.length;
            }

            @Override
            public Object getItem(int i) {
                return null;
            }

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

            @Override
            public View getView(int i, View view, ViewGroup viewGroup) {
                View view1 = getLayoutInflater().inflate(R.layout.row_data, null);
                //getting view in row_data
                TextView name = view1.findViewById(R.id.fruits);
                ImageView image = view1.findViewById(R.id.images);

                name.setText(fruitNames[i]);
                image.setImageResource(fruitImages[i]);
                return view1;
            }

        }
}
我的列表数据活动类

     package com.souravapplication.fruits;
     import android.content.Intent;
     import android.support.v7.app.AppCompatActivity;
     import android.os.Bundle;
     import android.view.MenuItem;
     import android.widget.ImageView;
     import android.widget.TextView;

     public class Listdata extends AppCompatActivity {
      TextView listdata;
       ImageView imageView;
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listdata);
        listdata = findViewById(R.id.listdata);
        imageView = findViewById(R.id.imageView);
        Intent intent = getIntent();
        String receivedName =  intent.getStringExtra("name");
        int receivedImage = intent.getIntExtra("image",0);
        listdata.setText(receivedName);
        imageView.setImageResource(receivedImage);
        //enable back Button
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }

             @Override
               public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                onBackPressed();
            }
            return super.onOptionsItemSelected(item);
    }
    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }
}
我已经用androidxml定义了SearchBox,它正在工作,唯一的问题是在搜索框中执行操作

My activity_main.xml文件

 <?xml version="1.0" encoding="utf-8"?>
 <android.support.constraint.ConstraintLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">


  <SearchView
      android:id="@+id/search"
      android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:iconifiedByDefault="false"
   app:layout_constraintBottom_toBottomOf="parent"
   app:layout_constraintLeft_toLeftOf="parent"
   app:layout_constraintRight_toRightOf="parent"
   app:layout_constraintStart_toStartOf="parent">

    </SearchView>

   <ListView
   android:id="@+id/listview"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginEnd="16dp"
   android:layout_marginRight="16dp"
   app:layout_constraintEnd_toEndOf="parent"
   tools:ignore="MissingConstraints"
   tools:layout_editor_absoluteY="-699dp">
   </ListView>
   </android.support.constraint.ConstraintLayout>

My row_data.xml

    <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
    android:id="@+id/listviewdata"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    >

    <TextView
        android:id="@+id/fruits"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginEnd="44dp"
        android:layout_marginRight="44dp"
        android:layout_toStartOf="@+id/images"
        android:layout_toLeftOf="@+id/images"
        android:text="Apple"
        android:textColor="#000"
        android:textSize="35sp"
        />


    <ImageView
        android:id="@+id/images"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginEnd="27dp"
        android:layout_marginRight="27dp"
        android:src="@drawable/apple"/>



</RelativeLayout>


请共享您的xml。我很困惑您想在Listdata活动中过滤什么。okkI正在添加我的xml文件。您用于搜索的关键字是什么。目前,我正在使用搜索。