2016-06-20 3 views
0

Я знаю, что существует много потоков, которые нацелены на этот вопрос, но никакое решение не могло помочь мне.Кнопка Android onClick не реагирует

I`ve получил следующую задачу:

Я хочу, чтобы моя кнопку на стартовом экране, чтобы использовать метод в моей основной деятельности, которая помещает данные из TextField в Намерения и начинает новую деятельность с Намерением. Тот же код действительно работал, как сейчас, на Android Studio, но на Eclipse он не работает. Никакие ошибки или что-нибудь, LogCat не дает мне только это:

06-20 14: 08: 39,003: D/AudioFlinger (1199): смеситель (0xb44c0000) дроссельная конец: дроссельный время (68)

I`ve определил кнопку в моем файле acitivity_main.xml так:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    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" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:orientation="vertical" 
    tools:context="com.example.jule.bachelorapp.MainActivity"> 

    <EditText 
     android:id="@+id/edit_standort" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_standort"/> 
    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_zeit"/> 
    <Button 
     android:id="@+id/button_sendData" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_sendData" 
     android:onClick="viewAdress" 
     /> 
</LinearLayout> 

Мои MainActivity.java файлов выглядит следующим образом:

package com.example.bachelorapp; 

import com.example.bachelorapp.R; 
import android.content.Intent; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Button; 


public class MainActivity extends AppCompatActivity { 

    Button button; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void viewAdress(View view){ 
     EditText editText = (EditText) findViewById(R.id.edit_standort); 
     String adresse = editText.getText().toString(); 
     Uri mapIntentUri = Uri.parse("geo:0,0?q="+ Uri.encode(adresse)); 
     Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri); 
     mapIntent.setPackage("com.google.android.apps.maps"); 
     if(mapIntent.resolveActivity(getPackageManager()) != null){ 
      startActivity(mapIntent); 
     } 
    } 
} 

Acitivty Я хочу открыть после нажатия кнопки мой MapActivity.java:

package com.example.bachelorapp; 

import android.support.v4.app.FragmentActivity; 
import android.annotation.SuppressLint; 
import android.os.Bundle; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapActivity extends FragmentActivity implements OnMapReadyCallback { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_map); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     MapFragment mapFragment = (MapFragment) getFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 


    /** 
    * Manipulates the map once available. 
    * This callback is triggered when the map is ready to be used. 
    * This is where we can add markers or lines, add listeners or move the camera. In this case, 
    * we just add a marker near Sydney, Australia. 
    * If Google Play services is not installed on the device, the user will be prompted to install 
    * it inside the SupportMapFragment. This method will only be triggered once the user has 
    * installed Google Play services and returned to the app. 
    */ 
    @Override 
    public void onMapReady(GoogleMap map) { 
     LatLng adress = new LatLng(48.362206, 10.908704); 
     map.addMarker(new MarkerOptions() 
       .position(adress) 
       .title("Zuhause")); 
    } 
} 

Кто-нибудь знает, почему кнопка с андроида: OnClick оленья кожа реагирует?

Я надеюсь, что вы можете помочь мне,

Приветствия Юле

+0

Может быть из-за этого mapIntent.setPackage ("com.google.android.apps.maps"); Вам не нужно setPackage для вашей собственной деятельности –

ответ

0

Если вы хотите передать свою деятельность текст из EditText, вы могли бы сделать что-то вроде этого.

public void viewAdress(View view) { 
    Intent mapIntent = new Intent(this, MapActivity.class); 
    //Place string as putExtra or place inside a bundle 
    mapIntent.putExtra("editTextString", editText.getText().toString()); 
    startActivity(mapIntent); 
} 
+0

В этом учебном пособии: https://developers.google.com/maps/documentation/android-api/intents#intent-anforderungen намерение структуры для Google Maps приведены и Я думаю, что мой код охватывает это. Это просто странно, что тот же код работал в Android Studio, но не в Eclipse. –

+0

. Учебное пособие, которое вы связали, содержит «Приложение Google Maps для Android предоставляет несколько намерений, которые вы можете использовать для запуска Google Карт при отображении, поиске, навигации или просмотра улиц. Если вы хотите встроить карту в свое приложение, обратитесь к руководству по началу работы с API Android для Android. » и из кода, который вы связали, вы увидите, что используете API и не пытаться запустить приложение для реальных карт? Кажется, у вас есть MapsActivity, который вы хотите открыть? – Max

+0

Ух, не запустил ли я приложение с моим кодом? Я думал, что создание намерения с данными и запуск MapActivity, как в учебнике, которое я связал, запустит приложение с Intent –

0

Вы должны установить активность имя пакета вместо mapIntent.setPackage("com.google.android.apps.maps") Этот вызов карты Google, которые вы не установили на устройстве или эмуляторе ,

+0

Так как я хочу использовать Карты Google в MapActivity, я должен позволить этому пакету как есть, правильно? –

+0

Да, правильно. Установили ли вы его? –

+0

Я установил Google API, Google Play Services и т. Д. В Eclipse. Используется ли это на моем AVD или мне нужно установить его на них отдельно? (И если да, то как) –

0
<Button 
    android:layout_width="150dip" 
    android:id="@+id/button1" 
    android:layout_height="50dip" 
    android:text="@string/login" 
    android:layout_marginRight="10dip"> 
</Button> 

вы должны вызвать кнопку -> findViewById()

Button buttonOne = (Button) findViewById(R.id.button1); 
buttonOne.setOnClickListener(new Button.OnClickListener() { 
    public void onClick(View v) { 
      //Do stuff here 
    } 
}); 
+0

Я тоже попробовал это с слушателем, но он не работал. Я должен заставить Google Maps запускать эмулятор и посмотреть, работает ли мой код тогда –

Смежные вопросы