android studio 自定义适配器 OnClickListener

标签 android listview android-intent android-activity custom-adapter

我正在努力处理这段代码,每次我运行它时它都会崩溃,所以我回到正常状态,在那里我完成了自定义适配器并将它连接到 ListView ,程序运行得非常好, 然后我尝试添加一个 Intent 以在您单击列表中的项目时打开另一个 Activity 我也添加了一个额外的内容来从主要 Activity 发送数据以查看存储在 stings 中的文本列表, 在我完成所有这些并且一切顺利之前,我尝试添加一个自定义 View 。这是我的代码。

MAinactivity.java

public class MainActivity extends AppCompatActivity {
    private List <Word> words =new ArrayList<Word>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ListView listview ;
        populatewordList();
        populateListView();
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
    private void populateListView() {
        ArrayAdapter <Word> adapter = new MyListAdapter ();
        ListView listView = (ListView) findViewById(R.id.listView);
        listView.setAdapter(adapter);

    }

    private void populatewordList() {
        words.add( new Word ("Xadiiska 1aad","Camalku waa Niyadda"));
        words.add( new Word ("Xadiiska 2aad","Tiirarka lslaamka"));
        words.add( new Word ("Xadiiska 3aad","Dhidibada lslaamka"));
        words.add( new Word ("Xadiiska 4aad","Abuurista Aadamiga"));
        words.add( new Word ("Xadiiska 5aad","Bidcada"));
        words.add( new Word ("Xadiiska 6aad","Kadheeraanshaha Shubhada"));
        words.add( new Word ("Xadiiska 7aad","Xurmada Muslimka"));
        words.add( new Word ("Xadiiska 8aad","Qofa laguma waajibiyo wax ka badan awooddiisa"));
        words.add( new Word ("Xadiiska 9aad","Wax la wada faray Nebiyada iyo Muslimiinta"));
        words.add( new Word ("Xadiiska 10aad","Dhawrsoonaanta"));
        words.add( new Word ("Xadiiska 11aad","Ha fara gelinin wax aadan shaqo ku lahayn"));
        words.add( new Word ("Xadiiska 12aad","Kalgacaylka"));
        words.add( new Word ("Xadiiska 13aad","Wax yaalaha dhiigga Muslimka Banneeya"));
        words.add( new Word ("Xadiiska 14aad","Anshaxa wanaagsan"));
        words.add( new Word ("Xadiiska 15aad","Carada"));
        words.add( new Word ("Xadiiska 16aad","Naxariista"));
        words.add( new Word ("Xadiiska 17aad","La Dhaqanka dadka"));
        words.add( new Word ("Xadiiska 18aad","Gargaarka Alla"));
        words.add( new Word ("Xadiiska 19aad","Xishoodka"));
        words.add( new Word ("Xadiiska 20aad","Qumanaanta"));
        words.add( new Word ("Xadiiska 21aad","Wax Jannada lagu galo"));
        words.add( new Word ("Xadiiska 22aad","Falka Khayrka"));
        words.add( new Word ("Xadiiska 23aad","Reebidda dulmiga"));
        words.add( new Word ("Xadiiska 24aad","Wardigu waa sadaqo"));
        words.add( new Word ("Xadiiska 25aad","Xilka saaran xubnaha bulshada"));
        words.add( new Word ("Xadiiska 26aad","Shakiga sidaad uga bixi lahayd"));
        words.add( new Word ("Xadiiska 27aad","Dardaaran"));
        words.add( new Word ("Xadiiska 28aad","Jidka Jannada loo maro"));
        words.add( new Word ("Xadiiska 29aad","Xuduudda Ilaahay"));
        words.add( new Word ("Xadiiska 30aad","Wax llaahay iyo dadkuba kugu jeclaadaan"));
        words.add( new Word ("Xadiiska 31aad","Ma bannaana adiyaddu"));
        words.add( new Word ("Xadiiska 32aad","Asaaska doodaha"));
        words.add( new Word ("Xadiiska 33aad","Reebidda Munkarka"));
        words.add( new Word ("Xadiiska 34aad","ls-xaq dhawridda Xubnaha bulshada"));
        words.add( new Word ("Xadiiska 35aad","Badbaadinta Bulshada"));
        words.add( new Word ("Xadiiska 36aad","Deeqsimada llaahay"));
        words.add( new Word ("Xadiiska 37aad","Qofka colaadiya Awliyada llaahay"));
        words.add( new Word ("Xadiiska 38aad","Xaaladaha qofka aan loo qabanayn dambiga uu falo"));
        words.add( new Word ("Xadiiska 39aad","Inaan la isku hilmaamin dunida"));
        words.add( new Word ("Xadiiska 40aad","Hawo raaca"));
        words.add( new Word ("Xadiiska 41aad","Khatarta shirkiga"));

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    private class MyListAdapter extends ArrayAdapter <Word> {
        public MyListAdapter (){
            super(MainActivity.this,R.layout.list_view,words);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View itemview =convertView;
            if (itemview==null){
                itemview = getLayoutInflater().inflate(R.layout.list_view,parent,false);
            }
            Word currentWord = words.get(position);


            TextView x_name =(TextView) itemview.findViewById(R.id.x_name);
            x_name.setText(currentWord.getmXname());


            TextView x_dis =(TextView) itemview.findViewById(R.id.x_dis);
            x_dis.setText(currentWord.getmXdis());
            return itemview;

        }
    }
}

Word.java

public class Word {

    private String mXname;
    private String mXdis;

    public Word(String Xname, String Xdis) {
        mXname = Xname;
        mXdis = Xdis;
    }

    public String getmXname() {
        return mXname;
    }

    public String getmXdis() {
        return mXdis;
    }
} 

ViewActivity

public class ViewActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        TextView textView = (TextView) findViewById(R.id.textView);
        Intent i = getIntent();
        int Topic_content = i.getIntExtra("Name: ", 0);
        textView.setText(Topic_content);
    }

}

最佳答案

您好,在这种情况下,您必须序列化数据,然后将它们传递给另一个 Activity 。 请检查以下链接。

Passing data through intent using Serializable

How to send an object from one Android Activity to another using Intents?

关于android studio 自定义适配器 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38750362/

相关文章:

java - 工具栏干扰使用 SearchView 过滤 RecyclerView

android - 一些 ListView 项目下的黑线

android - 获取新数据后保持 ListView 的滚动位置

android - NFC 智能海报的 Intent 过滤器

android - 外部调用/Intent 上的上下文 getFilesDir()

Android:调用 Activity.finish() 方法

android - 如何通过 Android NDK 编译 C++ 项目

android - 如何在 Android 中以编程方式启用/禁用辅助功能服务

android - 从 ListView/RecyclerView 处理逻辑显示项目详细信息的最佳方式/UX 是什么

android - Facebook 深层链接始终打开 Google Play 商店