1

比較的同じことをしているクリック可能な TextViews のリストがあります。それをクリックすると、そのアクティビティに移動します。設定は設定アクティビティに移動します。About to the about など。この反復的なコード以外に、これらのクリック可能な TextView を宣言して設定する簡単な方法はありますか?

 TextView create,
                         edit,
                         settings,
                         about;

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

                create = (TextView) findViewById(R.id.create);
                        create.setTextColor(Color.parseColor("#000000"));
                edit = (TextView) findViewById(R.id.edit);
                        edit.setTextColor(Color.parseColor("#000000"));
                settings = (TextView) findViewById(R.id.settings);
                        settings.setTextColor(Color.parseColor("#000000"));
                about = (TextView) findViewById(R.id.about);
                        about.setTextColor(Color.parseColor("#000000"));

                create.setOnClickListener(new View.OnClickListener(){
                        @Override
                        public void onClick(View v) {

                        }      
                });

                edit.setOnClickListener(new View.OnClickListener(){
                        @Override
                        public void onClick(View v){

                        }
                });

                settings.setOnClickListener(new View.OnClickListener(){
                        @Override
                        public void onClick(View v){

                        }
                });

                about.setOnClickListener(new View.OnClickListener(){
                        @Override
                        public void onClick(View v){

                        }
                });
4

2 に答える 2

1

アイテムのセットが小さい場合は、次のアプローチを取ることができます。

public class MyActivity extends Activity implements AdapterView.OnItemClickListener {

    private ArrayAdapter<Item> mAdapter;

    private static enum Item {Create,Edit,Settings,About}

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //-- can set up from external layout also--
        ListView list = new ListView(this);
        setContentView(list);

        list.setOnItemClickListener(this);

        mAdapter = new ArrayAdapter<Item>(this,android.R.layout.simple_list_item_1,Item.values());
        list.setAdapter(mAdapter);

    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        switch (mAdapter.getItem(i)){
            case Create:
                //--do stuff--
                break;
            case Edit:
                //--do stuff--
                break;
            case Settings:
                //--do stuff--
                break;
            case About:
                //--do stuff--
                break;
        }
    }
}
于 2013-01-27T05:39:23.110 に答える
0

View.OnClickListenerを実装できます。

   public class YOURACTIVITY extends Activity implements OnClickListener

そして onCreate()-

   yourTextview.setOnClickListener(this);

その後

@Override
public void onClick(View v) {
    // Based on the view , set the action


}
于 2013-01-27T04:07:02.090 に答える