Android ve Java - Başlangıç düzeyi karalamalar

Başlatan JKramer, 12 Şubat 2013, 16:16:37

JKramer

Merhaba,

Bu konuda, Android üzerinde uygulama geliştirmeyle ilgili -başlıkta da belirttiğim gibi- başlangıç düzeyinde olan, benim de boş vakitlerimde yeni yeni araştırıp öğrenmeye çalıştığım bilgilerden bahsetmek istiyorum. Öncelikle bu bir kurs değil, yazdıklarım da rehber değil :); ne Android ne de Java hakkında pek bir bilgim yok, sadece benim gibi "bir-iki buton atıp kenarından şu işe bir dahil olalım" diyenler için kenara köşeye alacağım notları foruma yazmamdan ibaret olacak.

Uygulama geliştirme için buradan Java hariç ihtiyacımız olan her şeyi kapsayan paketi indirip kurun. Buradan da kendi sisteminize uygun Java kit'ini indirip kurun. Ben dosya yollarıyla ilgili bir sıkıntı olma ihtimaline karşı doğrudan C dizini altında kurdum. Sonuçta C:\adt-bundle-windows-x86_64 şeklinde bir klasör oldu. C:\adt-bundle-windows-x86_64\eclipse altında (ya da masaüstüne atılan kısayoldan) eclipse.exe'ye çift tıklayarak ortama giriş yapın.

İlk olarak yukarıdaki menüden Window->Android SDK Manager'a tıklayıp bazı dosyaları ve/veya güncellemeleri indireceğiz. Varsayılan olarak Extras altındaki Android Support Library seçili olabilir. Bunun yanında ilgili sistem sürümlerindeki (benim telefon 2.3.3, çoğu telefon da 2.2 olduğundan ben onları seçtim) dosyaları seçip indirin. En yeni olan Android 4.2 (API 17), paketle beraber geldiğinden yüklü görünüyor olması lazım. Dosya indirme işlerini bitirdikten sonra yine Window->Preferences'a tıklayıp görsel ayarları yapabilirsiniz. Ben Java'nın kod tarzını beğenmediğim için elimden geldiğince Allman tarzına benzettim. Aşağıdaki kod bölümünde verdiklerimi .xml uzantısıyla kaydedin. Preferences->Java->Code Style->Formatter bölümünden "Import"a tıklayıp az önce kaydettiğiniz dosyayı ekleyin:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
<profile kind="CodeFormatterProfile" name="Allman" version="12">
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.compiler.source" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.7"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
</profile>
</profiles>

Preferences->Java->Editor->Syntax Coloring ile editör için istediğiniz renk ayarlamalarını yapabilirsiniz. Kendim için font ve siyah arka plan düzenlemelerini yaptım ama bu ayarlar için export seçeneği yok, belki başka bir yerden alınabiliyordur, bilmiyorum.

Bu ayarlamaların ardından ilk projemizi oluşturabiliriz. File->New->Android Application Project'e tıklayın:

[IMG]http://i.imgur.com/qqH1uJbs.png[/img]

Application Name: Markette ve telefondaki uygulamalar kısmında görülecek isim
Project Name: Ide için, klasör vs. isimlendirilirken kullanılacak
Package Name: Her uygulama için farklı bir isim olmalı. Aynı uygulamanın değişik versiyonlarını bu yolla belirliyoruz. Yukarıdakileri yazdığımızda otomatik olarak oluşacak adı (com.example...) markette kullanamıyormuşuz (nerede okuduğumu kaybettim, hatalıysa düzeltiriz), bu yüzden resimdeki gibi kafanıza göre bir isim verin.
Minimum required SDK: Uygulamanın desteklediği en düşük Android sürümü. Düşük seçmenin avantajı tabii ki daha fazla kişiye ulaşma şansı, dezavantajı ise uygulamayı geliştirirken kullanılabilecek yeniliklerden mahrum kalmak. Galiba bunu .net framework gibi düşünebiliriz; atıyorum Windows 98 en fazla .net 2.0 destekliyorsa .net 3.5 ile gelen bir şeyi kullanamıyoruz.

[IMG]http://i.imgur.com/iZExQlEs.png[/img]

Önceden Workspace için bir klasör belirleyip varsayılan olarak ayarlarsanız resimdeki gibi "Create Project in Workspace"'i işaretleyerek, yeni projeyi ilgili klasör altında oluşturulmasını sağlayabilirsiniz.

[IMG]http://i.imgur.com/zi2tjRAs.png[/img]

Burada uygulamanın ikonunun nasıl olacağını belirliyorsunuz. İster resimdeki gibi yazı, ister hazırladığınız veya hazır bulduğunuz resmi kullanabilirsiniz.

[IMG]http://i.imgur.com/iHXjGICs.png[/img]

Bu bölüm resimdeki olsun, sonra incelenecek.

[IMG]http://i.imgur.com/ME75hd3s.png[/img]

Activity ve Layout name'leri istediğiniz gibi yazabilirsiniz. Navigation type resimdeki gibi "None" kalsın; diğerlerini seçmek istediğinizde daha yüksek API seviyesi gerektiğiyle ilgili uyarı verecektir. Bizim seçtiğimiz min. API seviyesi için kaydırma olaylarını nasıl yapacağımızı daha sonra araştıracağız.

[IMG]http://i.imgur.com/Qqk7ybhs.png[/img]

Finish'e tıkladıktan sonra, yukarıdaki resimdeki gibi "Hello world!" yazılı projemiz oluşacak. Yukarıda Nexus One yazan bölüme tıklayarak görünümü değişik ekran boyutlarına göre ayarlayabilirsiniz.

Altta görüldüğü gibi "Graphical Layout" bölümünde buton, textview,vs. elemanları sürükleyip tasarıma ekleyebiliyoruz. Hemen yanındaki tab olan activity_layout.xml'de (ekranın sol tarafındaki "Package Explorer"da Project-3->res->layout yolunda) ise görsel bölümde eklediğimiz elemanların isimleri ve pozisyonları gibi tüm özellikleri otomatik olarak oluşturuluyor.

Asıl kaynak dosyamız, yine "Package Explorer"da Project-3->src->com.jkramer.project_3 altında MainActivity.java'dır. Açtığımızda ise aşağıdaki resimdeki gibi yine proje ile birlikte otomatik oluşturulmuş kodları görebilirsiniz:

[IMG]http://i.imgur.com/7Ip1W1ks.png[/img]


Yazdığımız uygulamaları, telefonumuzu bağlamadan bilgisayar üzerinde denemek için emulator ayarlarından bahsedeceğim. Menüden Window->Android Device Manager'a tıklayın:

[IMG]http://i.imgur.com/Hriifv9s.png[/img]

Ayarları kendi donanımınıza göre yapabilirsiniz. "Use Host GPU" seçeneğiyle bilgisayarın ekran kartını kullanarak emulatorün çalışmasını (ekran yenileme hızı, tepki süresi, vs.) daha akıcı hale getirebiliriz. Eğer denemelerde sorun çıkarsa önce bu özelliği kaldırıp tekrar deneyin.

Ok deyip ayarları kaydettikten sonra sağ tarafta Start'a basın. Açılan menüde boyutlandırma ayarlarına şimdilik dokunmayıp (bir sorun olmuştu, duruma göre sonra bakarız çok önemli değil) Launch'a tıklayın. Şimdi bir süre (1-10 dakika arası) bekleyeceğiz. Her açılışta böyle beklememek için uygulama geliştirirken bir daha kapatmayacağız :). Siyah ekran ve Android yazısı yerine aşağıdaki resimdekine benzer bir ekran geldiyse işlem tamamdır:

[IMG]http://i.imgur.com/YgxmIoAs.png[/img]

Bundan sonra yukarıdaki menüden Run->Run'a tıklayıp Android Application'ı seçin. Birkaç saniye sonra emulator ekranında uygulamamızı görebilirsiniz. Bundan sonra kaynak dosyamızda ve/veya görsel tasarımda bir değişiklik yaptığımızda tek yapmamız gereken Run->Run History->Project-3'e tıklamak. Baştaki bekleme süresinden dolayı emulator'ü kapatmayın. Bazen ilk açılışta ekran kilitli olabiliyor, normalde telefonunuzu açmak için kullandığınız yöntemlerle (farenin sol tuşuna basıp ekranda hareket ettirme ya da kilit simgesini soldan sağa doğru kaydırma gibi) kilidi açmanız gerekebilir.

Ben daha basit görsel şeylere baktığım için telefonu bağlamadım, sadece bluetooth üzerinden .apk dosyasını (proje klasörü içinde, bin klasörü altında Project-3.apk) telefonuma gönderip denedim. Ancak ileride, özellikle debug ederken telefonu bağlamamız gerekecek; buna da daha sonra bakacağız.




Tekrar Graphical Layout bölümüne geçelim. Ekranda "Hello World!" yazan Textview'a tıkladığımızda sağ taraftaki Properties bölümünde ilgili özellikleri görebiliriz. Burada ilk dikkat çeken nokta, Textview->Text kutusunda "Hello World!" yerine "@string/hello_world" yazmasıdır. Aynı şekilde activity_main.xml'de de ("Hello World!" Textview'ına çift tıkladığımızda o bölüme gidecektir):
android:text="@string/hello_world"

şeklindedir. Bu şekildeki yazımda "Hello World!" string'i, strings.xml (Package Explorer->Project-3->res->values) dosyasındaki hello_world tanımlamasından alınıyor. strings.xml dosyasını açtığımızda, bu tip string tanımlamalarını ya görsel olarak Resources tab'ından, ya da string.xml tab'ından yapabiliriz. Bu tip bir kullanım,
#define PI 3.14
#define LED PIN_B2

şeklindeki kullanıma benziyor. Bir diğer avantajı da çoklu dil desteği gibi durumlarda kolaylık sağlaması olabilir. Tabii ki her zaman böyle tanımlama yapmak zorunda değiliz, doğrudan
android:text="Hello World again!"

yazmamız da mümkün. Dikkat ederseniz derleyici, sarı ünlemle; "doğrudan string'i yazmak yerine strings.xml dosyasından tanımlama yapmalısın" şeklinde bir uyarı verdi. Bu arada önceden söylemeyi unuttum, yukarıdaki Project menüsüne bakarsanız, varsayılan olarak "Build Automatically"nin seçili olduğunu görebilirsiniz. Bu yüzden emulator'de son yaptığımız değişiklikleri görmek için, dosyayı kaydedip Run dememiz yeterli. Bilgisayar çok kasarsa bu özelliği kapatıp elle build edebilirsiniz.

Şimdi strings.xml'de yeni bir string tanımlayalım. strings.xml dosyasını açıp Add->String'e tıkladığımızda isimsiz boş bir string oluşacak. Oluşan String'e tıklayıp sağ taraftan Name bölümüne site, Value bölümüne de Picproje yazıp dosyayı kaydedin. Sonra activity_main.xml dosyasına geri dönüp kod bölümünü aşağıdaki gibi değiştirerek yeni tanımladığımız string'i kullanalım:
android:text="@string/site"

Graphical Layout'a geçtiğinizde ekranda tanımladığımız string'i yani "Picproje"yi görebilirsiniz.

Yazının rengini değiştirmek için, sağ taraftan Properties->Textview->TextColor kutusunun yanındaki ellipsis'e (üç nokta) tıklayın, açılan renk paletinden istediğiniz rengi seçin. Şaka şaka, renk paleti falan yok :), önce renkleri tanımlayan .xml dosyasını oluşturmamız gerekiyor. Bunun için sol taraftan Package Explorer->Project-3->res->values'e sağ tıklayıp New->Android XML File'a tıklayın. Açılan penceredeki ayarları aşağıdaki resimdeki gibi yapın:

[IMG]http://i.imgur.com/WlTem9os.png[/img]

Yeni oluşturduğumuz colors_x11.xml dosyası otomatik olarak açılacak. İçine aşağıdaki bölümü yapıştırıp kaydedin:
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <color name="White">#FFFFFF</color>
 <color name="Ivory">#FFFFF0</color>
 <color name="LightYellow">#FFFFE0</color>
 <color name="Yellow">#FFFF00</color>
 <color name="Snow">#FFFAFA</color>
 <color name="FloralWhite">#FFFAF0</color>
 <color name="LemonChiffon">#FFFACD</color>
 <color name="Cornsilk">#FFF8DC</color>
 <color name="Seashell">#FFF5EE</color>
 <color name="LavenderBlush">#FFF0F5</color>
 <color name="PapayaWhip">#FFEFD5</color>
 <color name="BlanchedAlmond">#FFEBCD</color>
 <color name="MistyRose">#FFE4E1</color>
 <color name="Bisque">#FFE4C4</color>
 <color name="Moccasin">#FFE4B5</color>
 <color name="NavajoWhite">#FFDEAD</color>
 <color name="PeachPuff">#FFDAB9</color>
 <color name="Gold">#FFD700</color>
 <color name="Pink">#FFC0CB</color>
 <color name="LightPink">#FFB6C1</color>
 <color name="Orange">#FFA500</color>
 <color name="LightSalmon">#FFA07A</color>
 <color name="DarkOrange">#FF8C00</color>
 <color name="Coral">#FF7F50</color>
 <color name="HotPink">#FF69B4</color>
 <color name="Tomato">#FF6347</color>
 <color name="OrangeRed">#FF4500</color>
 <color name="DeepPink">#FF1493</color>
 <color name="Fuchsia">#FF00FF</color>
 <color name="Magenta">#FF00FF</color>
 <color name="Red">#FF0000</color>
 <color name="OldLace">#FDF5E6</color>
 <color name="LightGoldenrodYellow">#FAFAD2</color>
 <color name="Linen">#FAF0E6</color>
 <color name="AntiqueWhite">#FAEBD7</color>
 <color name="Salmon">#FA8072</color>
 <color name="GhostWhite">#F8F8FF</color>
 <color name="MintCream">#F5FFFA</color>
 <color name="WhiteSmoke">#F5F5F5</color>
 <color name="Beige">#F5F5DC</color>
 <color name="Wheat">#F5DEB3</color>
 <color name="SandyBrown">#F4A460</color>
 <color name="Azure">#F0FFFF</color>
 <color name="Honeydew">#F0FFF0</color>
 <color name="AliceBlue">#F0F8FF</color>
 <color name="Khaki">#F0E68C</color>
 <color name="LightCoral">#F08080</color>
 <color name="PaleGoldenrod">#EEE8AA</color>
 <color name="Violet">#EE82EE</color>
 <color name="DarkSalmon">#E9967A</color>
 <color name="Lavender">#E6E6FA</color>
 <color name="LightCyan">#E0FFFF</color>
 <color name="BurlyWood">#DEB887</color>
 <color name="Plum">#DDA0DD</color>
 <color name="Gainsboro">#DCDCDC</color>
 <color name="Crimson">#DC143C</color>
 <color name="PaleVioletRed">#DB7093</color>
 <color name="Goldenrod">#DAA520</color>
 <color name="Orchid">#DA70D6</color>
 <color name="Thistle">#D8BFD8</color>
 <color name="LightGrey">#D3D3D3</color>
 <color name="Tan">#D2B48C</color>
 <color name="Chocolate">#D2691E</color>
 <color name="Peru">#CD853F</color>
 <color name="IndianRed">#CD5C5C</color>
 <color name="MediumVioletRed">#C71585</color>
 <color name="Silver">#C0C0C0</color>
 <color name="DarkKhaki">#BDB76B</color>
 <color name="RosyBrown">#BC8F8F</color>
 <color name="MediumOrchid">#BA55D3</color>
 <color name="DarkGoldenrod">#B8860B</color>
 <color name="FireBrick">#B22222</color>
 <color name="PowderBlue">#B0E0E6</color>
 <color name="LightSteelBlue">#B0C4DE</color>
 <color name="PaleTurquoise">#AFEEEE</color>
 <color name="GreenYellow">#ADFF2F</color>
 <color name="LightBlue">#ADD8E6</color>
 <color name="DarkGray">#A9A9A9</color>
 <color name="Brown">#A52A2A</color>
 <color name="Sienna">#A0522D</color>
 <color name="YellowGreen">#9ACD32</color>
 <color name="DarkOrchid">#9932CC</color>
 <color name="PaleGreen">#98FB98</color>
 <color name="DarkViolet">#9400D3</color>
 <color name="MediumPurple">#9370DB</color>
 <color name="LightGreen">#90EE90</color>
 <color name="DarkSeaGreen">#8FBC8F</color>
 <color name="SaddleBrown">#8B4513</color>
 <color name="DarkMagenta">#8B008B</color>
 <color name="DarkRed">#8B0000</color>
 <color name="BlueViolet">#8A2BE2</color>
 <color name="LighteşekküryBlue">#87CEFA</color>
 <color name="SkyBlue">#87CEEB</color>
 <color name="Gray">#808080</color>
 <color name="Olive">#808000</color>
 <color name="Purple">#800080</color>
 <color name="Maroon">#800000</color>
 <color name="Aquamarine">#7FFFD4</color>
 <color name="Chartreuse">#7FFF00</color>
 <color name="LawnGreen">#7CFC00</color>
 <color name="MediumSlateBlue">#7B68EE</color>
 <color name="LightSlateGray">#778899</color>
 <color name="SlateGray">#708090</color>
 <color name="OliveDrab">#6B8E23</color>
 <color name="SlateBlue">#6A5ACD</color>
 <color name="DimGray">#696969</color>
 <color name="MediumAquamarine">#66CDAA</color>
 <color name="CornflowerBlue">#6495ED</color>
 <color name="CadetBlue">#5F9EA0</color>
 <color name="DarkOliveGreen">#556B2F</color>
 <color name="Indigo">#4B0082</color>
 <color name="MediumTurquoise">#48D1CC</color>
 <color name="DarkSlateBlue">#483D8B</color>
 <color name="SteelBlue">#4682B4</color>
 <color name="RoyalBlue">#4169E1</color>
 <color name="Turquoise">#40E0D0</color>
 <color name="MediumSeaGreen">#3CB371</color>
 <color name="LimeGreen">#32CD32</color>
 <color name="DarkSlateGray">#2F4F4F</color>
 <color name="SeaGreen">#2E8B57</color>
 <color name="ForestGreen">#228B22</color>
 <color name="LightSeaGreen">#20B2AA</color>
 <color name="DodgerBlue">#1E90FF</color>
 <color name="MidnightBlue">#191970</color>
 <color name="Aqua">#00FFFF</color>
 <color name="Cyan">#00FFFF</color>
 <color name="SpringGreen">#00FF7F</color>
 <color name="Lime">#00FF00</color>
 <color name="MediumSpringGreen">#00FA9A</color>
 <color name="DarkTurquoise">#00CED1</color>
 <color name="DeepSkyBlue">#00BFFF</color>
 <color name="DarkCyan">#008B8B</color>
 <color name="Teal">#008080</color>
 <color name="Green">#008000</color>
 <color name="DarkGreen">#006400</color>
 <color name="Blue">#0000FF</color>
 <color name="MediumBlue">#0000CD</color>
 <color name="DarkBlue">#00008B</color>
 <color name="Navy">#000080</color>
 <color name="Black">#000000</color>
</resources>
<!-- http://stackoverflow.com/questions/3769762/android-color-xml-resource-file -->


Tekrar Graphical Layout'a gidip Textview->TextColor yanındaki ellipsis'e tıkladığınızda açılan pencerenin en üstünde Color bölümü olacak. Tıklarsanız az önce tanımladığımız renkleri görebilirsiniz. Şimdi istediğiniz rengi seçebilirsiniz. Bu renkler dışında bir de w3c renkleri var, xml dosyasının en altında bunları aldığım yerin adresi var, oradan inceleyebilirsiniz.




Eklediğimiz nesnelerin özelliklerini yazılımsal olarak değiştirebilmek için, o nesnenin id'sini kullanmamız gerekiyor. Normalde paletten grafik alana yeni bir buton, textview, vs. eklediğimizde id'si otomatik olarak verilir. Ancak projeyi oluşturduğumuzda ekranda olan textview'ın id bölümü boş. Id eklemek için, textview'a tıklayıp Properties penceresinde en üstteki Id bölümüne
@+id/tvSite

yazarak id'sini tanımlayabiliriz. Adından anlaşılacağı üzere id tvSite; @ işareti, string ve color'da olduğu gibi başka bir dosyayı (Project-3->gen->com.jkramer.Project-3->R.java) gösteriyor. İlgili dosyayı açarsanız id isimli bir sınıf altında isimini (tvSite) verdiğimiz id değişken olarak tanımlanmış ve sayısal bir değer verilmiş olduğunu görebilirsiniz. id'nin başındaki + işareti, yeni bir id eklediğimizi belirtmek için kullanılıyor.

Ana dosyaya (MainActivity.java) geçelim. Normalde Visual Studio'da eklediğimiz nesneler designer'da otomatik olarak oluşturulurken burada bizim yapmamız gerekiyor:
package com.jkramer.project_3;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity
{
	TextView tvSite;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

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

}

Başlangıçta import android.widget.TextView; satırı olmamasına rağmen Textview tvSite; satırını eklediğimizde otomatik olarak eklenecektir (Nesneye id ile aynı adı vermek zorunda değiliz). onCreate fonksiyonu içine;
tvSite=(TextView)findViewById(R.id.tvSite);
tvSite.setText("Picproje Android");

yazıp uygulamayı çalıştırın.




Grafik alana geçip bir buton ekleyelim. Id'sini btnColor (@+id/btnColor) olarak değiştirelim. Text kısmını da doğrudan "Renk değiştir" yapalım:

[IMG]http://i.imgur.com/NIozcpZs.png[/img]

Butona tıklama olayına, yine VS'da olduğu gibi çift tıklayarak gidemiyoruz. Bunun için öncelikle butona sağ tıklayıp açılan menüden Other properties->Inherited from View->onClick'e tıklayarak (Ek: Daha kısa yolu; butona tıkladığımızda, sağ tarafta Properties->View altında onClick bölümü, View olunca hiç bakmamıştım) vermek istediğimiz fonksiyon adını (btnColor_Click) yazıyoruz. activity_main.xml dosyasına;
android:onClick="btnColor_Click"

satırının eklendiğini göreceksiniz. MainActivity.java dosyasına az önce isimlendirdiğimiz fonksiyonu ekleyelim:

[IMG]http://i.imgur.com/QcIHf0os.png[/img]

Resimde görüldüğü gibi hatayı düzeltmek için import (import android.view.View) etmemiz gerekiyor. Renk değiştirmek için fonksiyona aşağıdaki satırı ekleyelim:
public void btnColor_Click(View v)
	{
		tvSite.setTextColor(color.Blue);
	}






Android ile ilgili tüm API sınıfları, açıklamalar ve örnekler için http://developer.android.com/develop/index.html adresindeki Training, API Guides, Reference bölümlerine bakabilir, Java için de http://docs.oracle.com/javase/tutorial/java/index.html adresini inceleyebilirsiniz. Daha sonra Java ile ilgili birkaç şeyden bahsedece

rooest

Tam  şu an  birçok şey indirip, birçok şey kurup yine de başarısız olduğum anda başka bir başlığı takip etmek için girdim ve karşıma bu başlık çıktı.
Sanıyorum bir işaret. Bir de  sizin  talimatlarınızla kurmaya çalışayım.  :)

JKramer

Grafik alana + ve - olarak isimlendirilen iki buton ekleyelim. Textview'ın da yazısını silip 0 yazalım:
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tvCounter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="0"
        android:textColor="@color/DarkCyan"
        android:textSize="35dp" />

    <Button
        android:id="@+id/btnInc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvCounter"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:onClick="btnInc_Click"
        android:text="+" />

    <Button
        android:id="@+id/btnDec"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/btnInc"
        android:layout_below="@+id/btnInc"
        android:layout_marginTop="31dp"
        android:onClick="btnDec_Click"
        android:text="-" />

</RelativeLayout>


MainActivity.java
package com.jkramer.project_3;

import com.jkramer.project_3.R.color;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity
{
	TextView tvCounter;
	public enum CounterDir{INC,DEC};
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tvCounter=(TextView)findViewById(R.id.tvCounter);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}
	
	public void btnInc_Click(View v)
	{
		ChangeCounter(tvCounter, CounterDir.INC);
	}
	
	public void btnDec_Click(View v)
	{
		ChangeCounter(tvCounter, CounterDir.DEC);
	}	
	
	public void ChangeCounter(TextView t,CounterDir dir)
	{
		Integer cnt=Integer.parseInt(t.getText().toString());
		//int cnt=Integer.parseInt(t.getText().toString());
		if(dir==CounterDir.INC)
		{
			if(++cnt>99999)
				cnt=99999;
		}
		else
		{
			if(--cnt<0)
				cnt=0;
		}
		t.setText(cnt.toString());
		//t.setText(Integer.toString(cnt));
	}
}


Öncelikle, bununla ilgili değil ama, bir değişkeni fonksiyon altında static tanımlayıp değerinin program boyunca saklı kalması olayı yok; global tanımlamamız gerekiyor.
finalconst'ın karşılığı olarak düşünebiliriz.

Örneğe dönersek, cnt'ı iki şekilde tanımladık; primitive (ilkel, temel) tip int ve Number sınıfından Integer ile. Temel tipte tanımlama yaptığımız zaman, doğrudan .toString() metodunu kullanamıyoruz; bize her yer c# değil yani :).

Bunun dışında fonksiyona parametre olarak tvCounter nesnesini geçtik. Aslında bu hatalı bir ifade oldu; burada nesnenin kendisini değil, adresini geçmiş olduk. Bu adreste bir örnek verilmiş:
Alıntı YapLike, this java code (sorry if there are minor syntax errors, as I'm used to C++):
Student bill;
 bill = new Student();
 bill.GPA = 4.0;

is equivalent to this C++ code:
Student* bill;
 bill = new Student;
 bill->GPA = 4.0;
Pointer, adres operatörü gibi kullanım söz konusu olmadığından temel tipler, vb. şekilde tanımlanmış değişkenleri, normal şekilde fonksiyona geçerek değerini değiştirmemiz mümkün değil. Yine şöyle bir örnek verilmiş:
Alıntı YapPrimitives are not passed by references (or objects for that matter) so no you cannot.
int i = 1;
moo(i);
public void moo(int bah)
{
   bah = 3;
}
System.out.println(i);


Prints out 1
Burada da Gevorg isimli arkadaşın güzel bir açıklaması var.