2

私は大きなコードを書き、タスク レイアウトの 1 つでリスト ビューを使用しました。

ここに画像の説明を入力

この場合、別のアクティビティに移動するために各更新ボタンのリスナーを作成する方法を知りたいです。複数のアクティビティを使用してそれらの間を移動する方法を知っていますが、リスナーのみを作成する方法を知りたいです。

カスタム アダプター コード:

package com.example.task_9;

import java.util.ArrayList;


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class TempLyaout extends ArrayAdapter<String> {

    Context context;
    ArrayList<String> sa;


    public TempLyaout(Context context , ArrayList<String> sa) {
        super(context,R.layout.temp,sa);
        this.context=context;
        this.sa = sa;
    }



    @Override
    public View getView(int position, View convertView, ViewGroup parent) {


        LayoutInflater l = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        View rowView = l.inflate(R.layout.temp, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.textView1);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);
        Button update = (Button) rowView.findViewById(R.id.button1);


//              myDb.open();
//              Cursor cursor= myDb.getRowByName(sa.get(position));
//              myDb.updateRowByName(cursor.getInt(DBAdapter.COL_ROWID), sa.get(position), cursor.getString(DBAdapter.COL_PASSWD), cursor.getInt(DBAdapter.COL_AGE), isAdmin);
//              myDb.close();




        textView.setText(sa.get(position));


        return rowView;
    }






}

これは関連するクラスです:

package com.example.task_9;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class UsersActivity extends Activity {

    Intent redirect;
    ListView list;
    ArrayList<String> sa;
    DBAdapter myDb;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

    @Override
    protected void onStart() {

        super.onStart();

        setContentView(R.layout.users);

        list= (ListView) findViewById(R.id.usersList);

        redirect = getIntent();

        openDB();

        /*********************************************/


        Cursor cursor = myDb.getAllRows();

        cursor.moveToFirst();

        ArrayList<String> ha = new  ArrayList<String>();

        while(cursor.moveToNext()) {

            ha.add(cursor.getString(DBAdapter.COL_NAME));

        }

        cursor.close();


         @SuppressWarnings("rawtypes")
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,ha);

         list.setAdapter(new TempLyaout(UsersActivity.this,ha));


            list.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        Toast.makeText(getApplicationContext(),
          "Click ListItem Number " + position, Toast.LENGTH_LONG)
          .show();

      }

    }); 



    } // end onStart method

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    @Override
    protected void onDestroy() {
        super.onDestroy();  
        closeDB();

    }// end onDestroy method



   ///////////////////////////////////////////////////////////////////////////////////////////////////////////////

    private void openDB() {
        myDb = new DBAdapter(this);
        myDb.open();
    } // end openDB method 

  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////

    private void closeDB() {
        myDb.close();
    } // end closeDB method 


///////////////////////////////////////////////////////////////////////////////////////////////////////////////

}// end main class 
4

1 に答える 1

1

あなたのgetViewで

       Button update = (Button) rowView.findViewById(R.id.button1);
       update.setOnClickListener(mClickListener);

それで

        private OnClickListener mClickListener = new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(ListActivtiy.this,SecondActivity.class);
                startActivity(intent); 
        }
    }; 

また、スムーズなスクロールとパフォーマンスのためにビューホルダーを使用します

http://developer.android.com/training/improving-layouts/smooth-scrolling.html

于 2013-07-06T16:15:04.667 に答える