0

アプリで利用可能なさまざまなアクティビティのリストをユーザーに表示したいのですが、「加速度センサー コントロール」や「ライン フォロワー」など、名前を明示的にしたいと考えています。現在、アクティビティはString配列に格納されています。これらのアクティビティ名は、表示および呼び出されるものです。「Line Follower」を表示して、「LineFollower」アクティビティを呼び出したいと思います (スペースなし)。それを行っている例は見つかりませんでした。

利用可能なアクティビティを表示する ListActivity は次のとおりです。

public class ActivityList extends ListActivity {
    // here I'd like to have "Accelerometer Control", "Touch Control"...
    String[] activities = new String[] {"AccelerometerControl", "TouchControl", "ArrowControl", "LineFollower", "Piano", "SendData", "LEDEqualizer", "Program"};

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(ActivityList.this, android.R.layout.simple_list_item_1, activities));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        String activity = activities[position];

        try
        {
            Class<?> activityClass = Class.forName("com.bluetooth." + activity);
            Intent intent = new Intent(ActivityList.this, activityClass);
            startActivity(intent);
        }
        catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }
}
4

2 に答える 2

0

通常はリストに表示するようにアクティビティを保持し、開始するときは、名前の間の空白を削除するだけです。

String[] activities = new String[] {"Accelerometer Control", "Touch Control", "Arrow Control", "Line Follower", "Piano", "Send Data", "LED Equalizer", "Program"};

// ...
String activity = activities[position];
activity = activity.replace(" ", "");
try {
    Class<?> activityClass = Class.forName("com.bluetooth." + activity);
    Intent intent = new Intent(ActivityList.this, activityClass);
    startActivity(intent);
} catch(ClassNotFoundException e) {
    e.printStackTrace();
}
于 2012-08-11T09:50:19.053 に答える
0

必要なアクティビティで、次のように setTitle を単独で試してください。

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);      
this.setTitle("myclass2");
于 2012-08-11T09:51:10.370 に答える