我的点击列表上的地图不起作用

时间:2018-08-28 11:58:36

标签: android google-maps-android-api-2

const url = "http://some domain/api/tweets";
const input = {tweet: {body:  ''}};
 
class App extends Component{
  constructor(props){
    super(props);
    this.state={
      error:null,
      isLoaded:false,
      data: [],
      value: ''
      
       
      
    }
    this.onSubmit = this.handleSubmit.bind(this);
    this.handleChange = this.handleChange.bind(this);
  }
  
 handleChange(e){
   this.setState({value: e.target.value});
 }

  componentDidMount() {
    fetch("http://some domain/api/tweets")
      .then(res => res.json())
      .then(
        (result) => {
          this.setState({
            isLoaded: true,
            data: result.data
          });
        },
        
        (error) => {
          this.setState({
            isLoaded: true,
            error
          });
        }
      )
  }

 handleSubmit(e){
  e.preventDefault()
  fetch(url, {
    method: 'POST',  
    body: JSON.stringify(this.state.value),  
    headers:{
      'Content-Type': 'application/json'
    }
  }).then(res => res.json())
.then(response => console.log('Success:', JSON.stringify(response)))
.catch(error => console.error('Error:', error));
  }
  render(){
    const { error, isLoaded, data } = this.state;
    if (error) {
      return <div>Error: {error.message}</div>;
    } else if (!isLoaded) {
      return <div>Loading...</div>;
    } else {
      return (
        <div className="list-type5">
       <form onSubmit={this.onSubmit} >
        <input type="text" placeholder="Body" value={this.state.value} onChange={this.handleChange}/>
        
        <input type="submit"  />
      </form>
        <ol>
          {data.map(i => (
            <div key={i.id}>
            <li >
           <a> <b> ID:</b>  {i.id} | <b> Body:</b> {i.body} | <b> Views:</b> {i.views}   </a>
            </li>
         
          </div>
             
          ))}
        </ol>
        </div>
      );
    }
  }
}
export default App;

当我启动地图时,当我单击地图时,它不会为我烘烤任何东西。

2 个答案:

答案 0 :(得分:0)

onClickListener内的Map对象上设置onMapReady

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    // Add a marker in Sydney and move the camera
    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    mMap.setOnMapClickListener(this);
    mMap.setOnMapLongClickListener(this);
}

mMap.setOnMapClickListener(this);方法中删除onMapClick,这是不必要的。

快乐编码。

答案 1 :(得分:0)

您实现了界面,但应添加此代码

mMap.setOnMapLongClickListener(this);
mMap.setOnCameraMoveListener(this);
mMap.setOnMapClickListener(this);

将回调添加到您的活动中。 祝你好运